5

次のコードがあります。

f = urllib.urlopen(url)
html = f.read()

上記の URL を開いたときの HTTP ステータス コード (HTTP 200、404 など) を教えてください。

どうすればできるか知っている人はいますか?

PS私はpython 2.5を使用しています。

ありがとう!!!

4

2 に答える 2

12

.getcode()によって返されるオブジェクトのメソッドを使用できますurlopen()

url = urllib.urlopen('http://www.stackoverflow.com/')
code = url.getcode()
于 2013-02-10T09:06:53.577 に答える
3

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

于 2013-02-10T09:59:57.413 に答える