次のコードがあります。
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 ヘッダーを提供しますが、ステータス コードは提供しません。