urllib2自定义opener详解
来源:互联网 发布:考上清华 知乎 编辑:程序博客网 时间:2024/06/10 20:43
这篇文章主要介绍了urllib2自定义opener详解,供参考
1.build_opener()
urllib2.urlopen()函数不支持验证、cookie或者其它HTTP高级功能。要支持这些功能,必须使用build_opener()函数创建自定义Opener对象。
build_opener([handler1 [ handler2, ... ]])
参数handler是Handler实例,常用的有HTTPBasicAuthHandler、HTTPCookieProcessor、ProxyHandler等。
build_opener ()返回的对象具有open()方法,与urlopen()函数的功能相同。
如果要修改http报头,可以用:
import urllib2opener = urllib2.build_opener()opener.addheaders = [('User-agent', 'Mozilla/5.0')]opener.open('http://www.example.com/')
2. install_opener(opener)
安装不同的opener对象作为urlopen()使用的全局opener。
3. 密码验证(HTTPBasicAuthHandler)
HTTPBasicAuthHandler()处理程序可用add_password()来设置密码。
h.add_password(realm,uri,user,passwd)
realm是与验证相关联的名称或描述信息,取决于远程服务器。uri是基URL。user和passwd分别指定用户名和密码。
import urllib2auth=urllib2.HTTPBasicAuthHandler()auth.add_password('Administrator','http://www.example.com','Dave','123456')opener=urllib2.build_opener(auth)u=opener.open('http://www.example.com/evilplan.html')
4. Cookie处理(HTTPCookieProcessor)
import urllib2,cookielibcookie=cookielib.CookieJar()cookiehand=urllib2.HTTPCookieProcessor(cookie)opener=urllib2.build_opener(cookiehand)
5.代理(ProxyHandler)
ProxyHandler(proxies)参数proxies是一个字典,将协议名称(http,ftp)等映射到相应代理服务器的URL。
proxy=ProxyHandler({'http':'http://someproxy.com:8080'})auth=HTTPBasicAuthHandler()auth.add_password()opener=build_opener(auth,proxy)
也可以在urlopen中使用代理
import urllib2 proxy = 'http://%s:%s@%s' % ('userName', 'password', 'proxy') inforMation = urllib2.urlopen("http://www.example.com", proxies={'http':proxy})
0 0
- urllib2自定义opener详解
- urllib2自定义opener详解
- urllib2自定义opener详解
- urllib2自定义opener详解
- urllib2自定义opener详解
- urllib2自定义opener
- Python标准库之urllib,urllib2自定义Opener
- python http 标准库之urllib,urllib2,自定义Opener,cookie
- urllib2 之opener
- urllib2详解
- urllib2详解
- urllib2 详解
- window.opener详解
- Handler处理器 和 自定义Opener
- Handler处理器和自定义opener
- [python相关]urllib2详解
- python urllib2详解
- Python库urllib2详解
- 简述servlet生命周期
- 浅谈HTML5中的Canvas基本绘图API简易封装和使用(一)
- Linux下的ip命令
- 6、视图的操作----第2篇
- POJ1463->树形DP
- urllib2自定义opener详解
- sql代码重构——使用自定义函数(一)
- Android 对canvas的translate()方法的理解
- 双向链表
- Android软键盘弹出时把布局顶上去,控件乱套解决方法
- html初学1
- 写出servlet重要的对象有哪些?
- 排序复杂度分析
- 功率谱密度相关方法MATLAB实现