Python 获取Urllib2的请求头。请求?

Python 获取Urllib2的请求头。请求?,python,urllib2,Python,Urllib2,有没有办法从使用Urllib2创建的请求中获取标头,或者确认使用Urllib2.urlopen发送的HTTP标头?查看请求(和响应标头)的简单方法是启用调试输出: opener = urllib2.build_opener(urllib2.HTTPHandler(debuglevel=1)) 然后,您可以看到发送/接收的准确标题: >>> opener.open('http://python.org') send: 'GET / HTTP/1.1\r\nAccept-Enco

有没有办法从使用Urllib2创建的请求中获取标头,或者确认使用Urllib2.urlopen发送的HTTP标头?

查看请求(和响应标头)的简单方法是启用调试输出:

opener = urllib2.build_opener(urllib2.HTTPHandler(debuglevel=1))
然后,您可以看到发送/接收的准确标题:

>>> opener.open('http://python.org')
send: 'GET / HTTP/1.1\r\nAccept-Encoding: identity\r\nHost: python.org\r\nConnection: close\r\nUser-Agent: Python-urllib/2.7\r\n\r\n'
reply: 'HTTP/1.1 200 OK\r\n'
header: Date: Tue, 14 Jun 2011 08:23:35 GMT
header: Server: Apache/2.2.16 (Debian)
header: Last-Modified: Mon, 13 Jun 2011 19:41:35 GMT
header: ETag: "105800d-486d-4a59d1b6699c0"
header: Accept-Ranges: bytes
header: Content-Length: 18541
header: Connection: close
header: Content-Type: text/html
header: X-Pad: avoid browser bug
<addinfourl at 140175550177224 whose fp = <socket._fileobject object at 0x7f7d29c3d5d0>>

检查右侧的任何相关Qs。有几十个副本。有没有办法在发送请求之前查看将要发送的头文件?我想模拟发送请求以获取将要发送的头(而不是实际发送)。请注意,如果需要向
build\u opener
添加其他处理器,只需将多个处理器传递给
build\u opener
函数即可。例如,要包含一个cookie处理器,您可以执行
opener=urllib2.build\u opener(urllib2.HTTPCookieProcessor(cookie\u jar),urllib2.HTTPHandler(debuglevel=1))
>>> req = urllib2.Request(url='http://python.org')
>>> req.add_header('User-Agent', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:5.0)')
>>> req.headers
{'User-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:5.0)'}