web-dev-qa-db-ja.com

ヘッダーをurllib2オープナーに追加するにはどうすればよいですか?

cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))    
opener.open('http://abc.com')
opener.open('http://google.com')

ご覧のとおり、私はオープナーを使用して、Cookie jarを使用してさまざまなWebサイトにアクセスしています。 Webサイトがアクセスされるたびにヘッダーが適用されるようにヘッダーを設定できますか?

33
TIMEX

build_openerによって返されるOpenerDirectorオブジェクトにヘッダーを直接追加できます。 rllib2 docs の最後の例から:

OpenerDirectorは、すべてのリクエストにUser-Agentヘッダーを自動的に追加します。これを変更するには:

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

また、リクエストがurlopen()(またはOpenerDirector.open())に渡されるときに、いくつかの標準ヘッダー(Content-Length、Content-Type、およびHost)が追加されることに注意してください。

61
senderle
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)
17
Corey Goldberg