我正在尝试编写一个只显示网站标题信息的小程序。这是代码:
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()
感谢您寻找:)
答案 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了解如何执行此操作。