python的urllib2 模块解析

来源:互联网 发布:关键词点击软件 编辑:程序博客网 时间:2024/05/16 05:17

python是蜘蛛之王,蜘蛛离不开urllib。 urllib2 是urllib 的另一个版本,有很多改进。 听说内部代码也好了很多。

urllib2是python自带的一个访问网页和本地文件的库。 简单使用如下:

访问一个网址:

  1. import urllib2
  2. f=urllib2.urlopen("http://www.jeapedu.com")
  3. buf = f.read()

读一个本地文件:

  1. import urllib2
  2. f=urllib2.urlopen('file:./a.txt')
  3. buf=f.read()

如何获取库有那些函数或者类:

  1. >>> dir(f)
  2. ['__doc__', '__init__', '__iter__', '__module__', '__repr__', 'close', 'code', 'fileno', 'fp', 'getcode', 'geturl', 'headers', 'info', 'next', 'read', 'readline', 'readlines', 'url']
  3. >>>

中文地址解析:¶

  1. h4 = u'http://www.baidu.com?w=测试'
  2. h4=h4.encode('utf-8')
  3. urllib2.urlopen(h4)

最好用正确的编码转换一下。 上面的例子如果不用转换的函数处理一下网址,会导致urlopen 失败。

分类操作¶

FTP

  1. handler = urllib2.FTPHandler()
  2. request = urllib2.Request(url='ftp://ftp.ubuntu.com/')
  3. opener = urllib2.build_opener(handler)
  4. f = opener.open(request)
  5. print f.read()

如果需要用户名和密码:

  1. urllib2.Request(url='ftp://用户名:密码@ftp地址/')

HTTP

  1. handler = urllib2.HTTPHandler()
  2. request = urllib2.Request(url='http://ftp.ubuntu.com/')
  3. opener = urllib2.build_opener(handler)
  4. f = opener.open(request)
  5. print f.read()

支持 headers

  1. #coding=utf-8
  2. import urllib2
  3. request = urllib2.Request(url='http://192.168.2.201:8000/hd.txt')
  4. request.add_header('Accept-encoding', 'gzip')
  5. f = urllib2.urlopen(request)
  6. print f.read()
0 0
原创粉丝点击