300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > python中的opener_urllib2自定义opener详解

python中的opener_urllib2自定义opener详解

时间:2024-05-31 23:55:44

相关推荐

python中的opener_urllib2自定义opener详解

urllib2.urlopen()函数不支持验证、cookie或者其它HTTP高级功能。要支持这些功能,必须使用build_opener()函数创建自定义Opener对象。

复制代码 代码如下:

build_opener([handler1 [ handler2, ... ]])

参数handler是Handler实例,常用的有HTTPBasicAuthHandler、HTTPCookieProcessor、ProxyHandler等。

build_opener ()返回的对象具有open()方法,与urlopen()函数的功能相同。

如果要修改http报头,可以用:

复制代码 代码如下:

import urllib2

opener = urllib2.build_opener()

opener.addheaders = [('User-agent', 'Mozilla/5.0')]

opener.open('/')

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 urllib2

auth=urllib2.HTTPBasicAuthHandler()

auth.add_password('Administrator','','Dave','123456')

opener=urllib2.build_opener(auth)

u=opener.open('/evilplan.html')

4. Cookie处理(HTTPCookieProcessor)

复制代码 代码如下:

import urllib2,cookielib

cookie=cookielib.CookieJar()

cookiehand=urllib2.HTTPCookieProcessor(cookie)

opener=urllib2.build_opener(cookiehand)

5.代理(ProxyHandler)

ProxyHandler(proxies)参数proxies是一个字典,将协议名称(http,ftp)等映射到相应代理服务器的URL。

复制代码 代码如下:

proxy=ProxyHandler({'http':':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("", proxies={'http':proxy})

本文标题: urllib2自定义opener详解

本文地址: /jiaoben/python/104814.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。