如何在不使用python进行身份验证的情况下获取HTTP头信息?

时间:2012-04-17 15:49:30

标签: python http authentication http-headers

我正在尝试编写一个只显示网站标题信息的小程序。这是代码:

import urllib2

url = 'http://some.ip.add.ress/'

request = urllib2.Request(url)

try:
    html = urllib2.urlopen(request)
except urllib2.URLError, e:
    print e.code
else:
    print html.info()

如果'some.ip.add.ress'是google.com,则返回标题信息没有问题。但是,如果它是一个需要在访问之前进行基本身份验证的IP地址,那么它会返回401.有没有办法在没有身份验证的情况下获取标头(或任何其他)信息?


我已经解决了这个问题。

尝试因未经授权的访问而失败后,以下修改将打印标题信息:

print e.info()

而不是:

print e.code()

感谢您寻找:)

2 个答案:

答案 0 :(得分:1)

如果您只需要标题,而不是使用urllib2,则应该降低级别并使用httplib

import httplib
conn = httplib.HTTPConnection(host)
conn.request("HEAD", path)
print conn.getresponse().getheaders()

答案 1 :(得分:0)

如果你想要的只是HTTP标题,那么你应该HEAD而不是GET请求。您可以通过阅读Python - HEAD request with urllib2了解如何执行此操作。