urllib是python提供的一个用于操作URL的模块,在python2.x中有URllib库,也有Urllib2库,在python3.x中Urllib2合并到了Urllib中,我们爬取网页的时候需要经常使用到这个库。
升级合并之后,模块中包的位置变化的地方比较多。在此,我们总结并为大家列举一些常见的位置变动,方便之前用python2.x的朋友在使用python3.x的时候可以快速的掌握,其他的在用到的时候再具体为大家讲解。
- python2.x中使用import urllib2——————对应的,在python3.x中会使用import urllib.request,urllib.error。
- 在python2.x中使用import urllib——————对应的,在python3.x中会使用import urlli.request,urllib.error
- 在python2.x中使用import urlparse—————对应的,在python3.x中会使用import urllib.parse
- 在python2.x中使用import urllib2——————对应的,在python3.x中会使用import urllib.request,urllib.error
- 在python2.x中使用urllib2.urlopen——————对应的,在python3.x中会使用import urllib.request.urlopen
- 在python2.x中使用urllib.quote——————对应的,在python3.x中会使用import urllib.request.quote
- 在python2.x中使用cookielib.CoolieJar——————对应的,在python3.x中会使用Http.CookieJar
- 在python2.x中使用urllib2.Request————对应的,在python3.x中会使用urllib.request.Request。
以上是对urllib相关模块中从python2.x到python3.x的常见的一些变动,如果之前使用的是python2.x版本或者在网上阅读关于python2.x的代码,可以根据以上对应关系写出python3.x程序
(1)def urlopen(url,data=None,proxies=None)
参数说明:
- url:需要打开的网址(必须符合URL规范)
- data:向指定的URL发送的数据字符串,Get或者POST都可以,但是必须符合标准格式,格式为:
- key1=value1&key2=value2.................
- proxies:代理服务器地址字典,如果未指定,在window平台上则根据IE的设置不支持需要验证的代理服务器。
返回值说明:urlopen返回一个类文件对象,该类文件有如下方法:
- read(),readline(),readlines(),fileno(),close():这些方法的使用方式与文件对象完全一样;
- info():返回一个httplib.HTTPMessage对象,表示远程服务器返回的消息;
- getcode():返回HTTP状态码。如果是HTTP请求,200表示请求成功完成,404表示资源不存在或未找到。
代码实例:
运行结果:
(2)def urlretrieve(url, filename=None, reporthook=None, data=None)
参数说明:
- url:符合URL规范的字符串
- filename:本地文件路径的字符串,从URL返回的数据将保存在该文件中,如果设置为None则生成一个临时文件。
- reporthook:一个函数引用,当连接上服务器、以及相应的数据库传输完毕的时候会触发该函数,我们可以利用这个函数来显示当前的下载进度等等。
我们可以任意定义该函数的行为,只需要保证函数有三个参数:
- 第一个参数:为目前为止传递的数据块数量
- 第二个参数:为每个数据块的大小,单位为byte
- 第三个参数:为文件总的大小(某些时候可能为-1)
data:向指定的URL发送的数据字符串,Get和Post都可以,但是必须符合标准格式:
key1=value1&key2=value2..........
函数返回值:返回一个元组(filename,headers),filename为参数总的filename,header为从服务器传回来的MIME的类型。
实例:
运行结果显示:
(3)其他函数
- urllib.quote(string[, safe]):对字符串进行编码。参数safe指定了不需要编码的字符;
- urllib.unquote(string) :对字符串进行解码;
- urllib.quote_plus(string[,safe]) :与urllib.quote类似,但这个方法用'+'来替换' ',而quote用'%20'来代替' '
- urllib.unquote_plus(string) :对字符串进行解码;
- urllib.urlencode(query[, doseq]):将dict或者包含两个元素的元组列表转换成url参数。例如 字典{'name': 'dark-bull', 'age': 200}将被转换为"name=dark-bull&age=200"
- urllib.pathname2url(path):将本地路径转换成url路径;
- urllib.url2pathname(path):将url路径转换成本地路径;
运行结果:
运行结果:
到此这篇关于Python中urllib与urllib2模块的变化与使用详解的文章就介绍到这了,更多相关Python的urllib与urllib2模块内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
到此这篇pathlib2(pathlib2与pathlib区别)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/bcyy/77585.html