Python 如何向urllib2 opener添加标题?
正如您所看到的,我使用opener访问不同的网站,使用cookie jar。我是否可以设置一个标题,以便每次创建网站时都应用该标题Python 如何向urllib2 opener添加标题?,python,http,header,urllib2,Python,Http,Header,Urllib2,正如您所看到的,我使用opener访问不同的网站,使用cookie jar。我是否可以设置一个标题,以便每次创建网站时都应用该标题 cj = cookielib.CookieJar() opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) opener.open('http://abc.com') opener.open('http://google.com') 或 您可以将标题直接添加到build\u opene
cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
opener.open('http://abc.com')
opener.open('http://google.com')
或
您可以将标题直接添加到
build\u opener
返回的OpenerDirector
对象中。从中的最后一个示例:
OpenerDirectory会自动向每个请求添加一个用户代理头。要更改此设置,请执行以下操作:
另外,请记住,在将请求传递给urlopen()或OpenerDirector.open()时,会添加一些标准头(内容长度、内容类型和主机)
opener
是一个完全不同的对象,在这种情况下,您不能使用Request
。@senderle您说得对,谢谢。@piotrdorgost,公平地说,这个特定的功能没有得到充分的说明。该类条目是空的;以上信息很容易遗漏。
headers = {'foo': 'bar',}
req = urllib2.Request(url, None, headers)
resp = urllib2.urlopen(req)
req = urllib2.Request(url)
req.add_header('foo', 'bar')
resp = urllib2.urlopen(req)
import urllib2
opener = urllib2.build_opener()
opener.addheaders = [('User-agent', 'Mozilla/5.0')]
opener.open('http://www.example.com/')