多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
python是蜘蛛之王,蜘蛛离不开urllib。 urllib2 是urllib 的另一个版本,有很多改进。 听说内部代码也好了很多。 urllib2是python自带的一个访问网页和本地文件的库。 简单使用如下: 访问一个网址: ~~~ import urllib2 f=urllib2.urlopen("http://www.jeapedu.com") buf = f.read() ~~~ 读一个本地文件: ~~~ import urllib2 f=urllib2.urlopen('file:./a.txt') buf=f.read() ~~~ 如何获取库有那些函数或者类: ~~~ >>> dir(f) ['__doc__', '__init__', '__iter__', '__module__', '__repr__', 'close', 'code', 'fileno', 'fp', 'getcode', 'geturl', 'headers', 'info', 'next', 'read', 'readline', 'readlines', 'url'] >>> ~~~ ### 中文地址解析:[¶](http://uliweb.clkg.org/tutorial/view_chapter/172#title_0-0-1) ~~~ h4 = u'http://www.baidu.com?w=测试' h4=h4.encode('utf-8') urllib2.urlopen(h4) ~~~ 最好用正确的编码转换一下。 上面的例子如果不用转换的函数处理一下网址,会导致urlopen 失败。 ### 分类操作[¶](http://uliweb.clkg.org/tutorial/view_chapter/172#title_0-0-2) FTP ~~~ handler = urllib2.FTPHandler() request = urllib2.Request(url='ftp://ftp.ubuntu.com/') opener = urllib2.build_opener(handler) f = opener.open(request) print f.read() ~~~ 如果需要用户名和密码: ~~~ urllib2.Request(url='ftp://用户名:密码@ftp地址/') ~~~ HTTP ~~~ handler = urllib2.HTTPHandler() request = urllib2.Request(url='http://ftp.ubuntu.com/') opener = urllib2.build_opener(handler) f = opener.open(request) print f.read() ~~~ 支持 headers ~~~ #coding=utf-8 import urllib2 request = urllib2.Request(url='http://192.168.2.201:8000/hd.txt') request.add_header('Accept-encoding', 'gzip') f = urllib2.urlopen(request) print f.read() ~~~