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

如何在不使用python进行身份验证的情况下获取HTTP头信息?,python,http,authentication,http-headers,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

我正在尝试编写一个小程序,它将简单地显示网站的标题信息。代码如下:

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()
而不是:


感谢查看:)

如果您只需要标题,而不是使用
urllib2
,则应转到较低级别并使用


如果您只需要HTTP头,那么应该发出
HEAD
not
GET
请求。你可以通过阅读了解如何做到这一点。

没关系,我已经解决了。打印e.info()关于仍在学习python的错误…将您的解决方案作为此问题的答案发布。我之前对此感到厌倦,并收到了401。你的方法很有效!感谢您,我似乎又遇到了问题,python控制台正在返回[Errno 104]由对等方重置的连接,我不确定这意味着什么。我是同行,但我没有重置任何东西,是吗!?最有可能的意思是,另一端不接受HTTP连接。你可能会这么认为,但我可以通过我的chrome浏览器访问和登录。此外,我的原始代码(在顶部)运行良好,返回的标题没有问题!StraaAnge我认为最好是演示如何使用urllib2执行
HEAD
请求,而不是降低级别。
print e.code()
import httplib
conn = httplib.HTTPConnection(host)
conn.request("HEAD", path)
print conn.getresponse().getheaders()