我有以下代码:
f = urllib.urlopen(url)
html = f.read()
我想知道打开上面的 url 后的 HTTP 状态代码(HTTP 200、404 等)。
有人知道怎么做吗?
PS我使用python 2.5。
谢谢!!!
我有以下代码:
f = urllib.urlopen(url)
html = f.read()
我想知道打开上面的 url 后的 HTTP 状态代码(HTTP 200、404 等)。
有人知道怎么做吗?
PS我使用python 2.5。
谢谢!!!
您可以使用.getcode()
返回的对象的方法urlopen()
url = urllib.urlopen('http://www.stackoverflow.com/')
code = url.getcode()
getcode()
仅在 Python 2.6 中添加。据我所知,在 2.5 中无法从请求本身获取状态代码,但 FancyURLopener 提供了一组函数,这些函数在某些错误代码上被调用——您可能会使用它来将状态代码保存在某处。我将它分类以告诉我何时发生 404
import urllib
class TellMeAbout404s(urllib.FancyURLopener):
def http_error_404(self, url, fp, errcode, errmsg, headers, data=None):
print("==== Got a 404")
opener = TellMeAbout404s()
f = opener.open("http://www.google.com/sofbewfwl")
print(f.info())
info()
提供 HTTP 标头但不提供状态代码。