我有以下代碼:如何從python urllib的urlopen獲取HTTP返回碼?
f = urllib.urlopen(url)
html = f.read()
我想知道的HTTP狀態代碼(HTTP 200,404等),其來源於打開上述網址。
任何人都知道它是如何做到的?
P.S. 我使用python 2.5。
謝謝!
我有以下代碼:如何從python urllib的urlopen獲取HTTP返回碼?
f = urllib.urlopen(url)
html = f.read()
我想知道的HTTP狀態代碼(HTTP 200,404等),其來源於打開上述網址。
任何人都知道它是如何做到的?
P.S. 我使用python 2.5。
謝謝!
您可以通過urlopen()
url = urllib.urlopen('http://www.stackoverflow.com/')
code = url.getcode()
也許這是因爲我使用python 2.5,但我收到以下錯誤消息: AttributeError:addinfourl實例沒有屬性'getcode' – diemacht 2013-02-10 09:11:30
getcode()
在Python 2.6只添加使用返回的對象的.getcode()
方法。據我所知,在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標頭但不是狀態代碼。
什麼是HTML返回碼?你的意思是HTTP狀態? – 2013-02-10 09:14:06