Как мне добавить заголовок к открывалке urllib2? - PullRequest
33 голосов
/ 07 июня 2011
cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))    
opener.open('http://abc.com')
opener.open('http://google.com')

Как видите, я использую открывашку, чтобы посещать разные сайты, используя банку печенья.Могу ли я установить заголовок так, чтобы каждый раз, когда это был веб-сайт, заголовок применялся?

Ответы [ 2 ]

61 голосов
/ 07 июня 2011

Вы можете добавить заголовки непосредственно к объекту OpenerDirector, возвращаемому build_opener. Из последнего примера в urllib2 документах :

OpenerDirector автоматически добавляет заголовок User-Agent к каждому запросу. Чтобы изменить это:

import urllib2
opener = urllib2.build_opener()
opener.addheaders = [('User-agent', 'Mozilla/5.0')]
opener.open('http://www.example.com/')

Также следует помнить, что несколько стандартных заголовков (Content-Length, Content-Type и Host) добавляются при передаче запроса в urlopen () (или OpenerDirector.open ()).

17 голосов
/ 07 июня 2011
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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...