问题描述
cj = cookielib.CookieJar()opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))opener.open('http://abc.com')opener.open('http://google.com')
如您所见,我使用 opener 访问不同的网站,使用 cookie jar.我可以设置一个标头,以便每次访问网站时都应用标头吗?
你可以直接将headers添加到build_opener返回的OpenerDirector对象.从 urllib2 docs 中的最后一个示例:
<块引用>OpenerDirector 会自动为每个请求添加一个 User-Agent 标头.要改变这一点:
导入urllib2opener = urllib2.build_opener()opener.addheaders = [('用户代理', 'Mozilla/5.0')]opener.open('http://www.51sjk.com/Upload/Articles/1/0/337/337563_20221130103024290.jpg')
<块引用>
另外,请记住,在将请求传递给 urlopen()(或 OpenerDirector.open())时会添加一些标准标头(Content-Length、Content-Type 和 Host).
cj = cookielib.CookieJar() opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) opener.open('http://abc.com') opener.open('http://google.com')
As you can see, I use opener to visit different websites, using a cookie jar. Can I set a header so that each time a website is it, the header is applied?
You can add the headers directly to the OpenerDirector object returned by build_opener. From the last example in the urllib2 docs:
OpenerDirector automatically adds a User-Agent header to every Request. To change this:
import urllib2 opener = urllib2.build_opener() opener.addheaders = [('User-agent', 'Mozilla/5.0')] opener.open('http://www.51sjk.com/Upload/Articles/1/0/337/337563_20221130103024290.jpg')
Also, remember that a few standard headers (Content-Length, Content-Type and Host) are added when the Request is passed to urlopen() (or OpenerDirector.open()).