如何调用urllib2 get_header方法?

时间:2012-08-06 16:01:22

标签: python python-2.7 urllib2

我正在调查python urllib2 download size问题。

虽然建议的方法RanRag or jterrace对我来说很好,但我想知道如何使用urllib2.Request.get_header方法来实现同样的目的。所以,我尝试了以下代码行:

>>> import urllib2
>>> req_info = urllib2.Request('http://mirror01.th.ifl.net/releases//precise/ubuntu-12.04-desktop-i386.iso')
>>> req_info.header_items()
[]
>>> req_info.get_header('Content-Length')
>>>

因为,你可以看到get_header没有返回任何内容,header_items也没有。

那么,使用上述方法的正确方法是什么?

1 个答案:

答案 0 :(得分:3)

urllib2.Request类只是“URL请求的抽象”(http://docs.python.org/library/urllib2.html#urllib2.Request),并不进行任何实际的数据检索。您必须使用urllib2.urlopen来检索数据。 urlopen或者直接将url作为字符串,或者也可以传递Request对象的实例。

例如:

>>> req_info = urllib2.urlopen('https://www.google.com/logos/2012/javelin-2012-hp.jpg')
>>> req_info.headers.keys()
['content-length', 'x-xss-protection', 'x-content-type-options', 'expires', 'server', 'last-modified', 'connection', 'cache-control', 'date', 'content-type']
>>> req_info.headers.getheader('Content-Length')
'52741'