0

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

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()

谢谢你看:)

4

2 回答 2

1

如果你只想要标题,而不是 using urllib2,你应该去更低的级别并使用httplib

import httplib
conn = httplib.HTTPConnection(host)
conn.request("HEAD", path)
print conn.getresponse().getheaders()
于 2012-04-17T16:03:38.207 回答
0

如果您想要的只是 HTTP 标头,那么您不应该提出HEAD请求GET您可以通过使用 urllib2 阅读 Python-HEAD 请求来了解如何执行此操作。

于 2012-04-17T18:33:18.633 回答