urllib
来源:互联网 发布:千牛与淘宝什么区别 编辑:程序博客网 时间:2024/06/08 15:53
urllib模块的应用:
python2里分为urllib,urllib2等模块,在3中合成了一个,另外还有urlib3等其他模块。其实他是个一个包,包括了request,error,parse,robotparser四个模块。最常用的就是request模块。
在应用是需要先导入urllib.request模块。
import urllib.request
常用的函数:
urllib.request.urlopen(url)
urlopen用来打开参数url。url既可以是字符串也可以是request对象。
所以这句话相当于:
req = urllib.request.Request(url)
urllib.request.urlopen(req)
urllib.request.urlopen(url, data, [timeout], cafile,capath,cadefault,context)
这是urlopen的默认所有参数。其中data项,如果为空,说明HTTP的请求是GET,如果不为空,说明请求是POST;并且data必须符合x-www-form-urlencoded格式,可以用urllib.parse.urlencode()将字符串转换成这个格式。
所以如果需要有所选择的获取数据,应当在urlopen中添加data参数。
例:
data = {}
data[‘doctype’] = ‘json’
data[‘i’] = ‘I love you.’
url = ‘http://www.xxxxx.com’
data = urllib.parse.urlencode(data).encode(‘utf-8’)
response = urllib.request.urlopen(url, data)
html = response. read().decode(‘utf-8’)
print(html)
Request有个headers参数,可以修改user-agent来达到修改python user-agent的目的,可以用request.add_header()来修改它。
urllib.request.OpenDirector)
OpenDirector包括很多子处理类,BaseHandler,ProxyHandler等。
修改代理用ProxyHandler
ex:
处理代理为182……这个IP,端口号为8118
proxy_support = url.request.ProxyHandler( {‘http’:’182.134.48.59:8118’})
然后创建一个包含代理IP的opener
opener = urllib.request.build_opener(proxy_support)
安装进默认环境,这样调用urlopen时会使用新的opener.不过一般不建议修改,除非方便。不修改时可以用opener.open方法。
urllib.request.install_open(opener)
- urllib
- urllib
- urllib
- urllib
- urllib
- urllib
- urllib
- urllib
- Urllib
- urllib
- urllib proxy
- urllib模块
- PyS60 Urllib
- urllib模块
- python urllib
- python urllib
- urllib模块
- urllib.quote
- Boosting和GBT
- Note7燃损确因电池而起三星将加强安全检查工作
- Hibernate中的二级缓存
- SpringMVC(第二天 高级知识)
- MySQL Group Replication调研剖析
- urllib
- 初步学习多线程的总结
- 算法之路二:刘汝佳算法竞赛入门经典 4.11刽子手游戏 UVa 489
- SSL、TLS、HTTPS、SSH综述
- Android设备的网络抓包方案
- MySQL-Proxy实现MySQL读写分离
- 数据库的连接以及处理重复数据
- 递归可能出现的性能问题
- 百度地图API自定义地图