2017-11-11 7 views
0

確認したいURLのテーブルがまだ有効です。一部のURLでリクエストがハングアップする、この特定のケースの例外を特定できない

try: 
    status = requests.get(url).status_code 
except: 
    status = '999' 

これはほとんどの場合に機能しますが、いくつかのURLがフローを停止します。たとえば、以下のURLは、ちょうどハング:

try: 
    status = requests.get(card[2]).status_code 
except requests.exceptions.Timeout: 
    status = 'timeout' 
except requests.exceptions.TooManyRedirects: 
    # URL was bad 
    status = 'bad url' 
except requests.exceptions.RequestException as e: 
    status = e 
    sys.exc_clear() 
    pass 

しかし、これはあまりにも同じURL(上記)でハング:

requests.get('https://www.moneycorpcard.com/').status_code 

だから私は、次を思い付く別の答え"Correct way to try/except using Python requests"を使用しました。

リクエストと上記のこの特定のURLで何が起きているか、そしてリクエストがこれらのタイプの状況に遭遇したときに移動し続ける方法についてのアイデアはありますか?

答えて

1

タイムアウト値を設定し、あなたの、ここで説明したようメソッド呼び出しを取得http://docs.python-requests.org/en/master/user/quickstart/#timeouts

+0

ためタイムアウトパラメータを使用してみてくださいは、仕事をしてくれました。 'status = requests.get(card [2]、timeout = 30).status_code'これですべてのURLを移動します。 – curtisp

関連する問題