6

これが非常に単純な質問であることを願っていますが、それは私を夢中にさせています。ubuntu 12.10サーバーのすぐに使えるインストールでPython 2.7.3を使用しています。このスニペットに到達するまで、問題を拡大し続けました。

import urllib2
x=urllib2.urlopen("http://casacinema.eu/movie-film-Matrix+trilogy+123+streaming-6165.html", timeout=5)

永遠にハングアップし、タイムアウトになることはありません。私は明らかに何か間違ったことをしています。誰でも助けてもらえますか?どうもありがとうございます!

マッテオ

4

3 に答える 3

1

alecxeが提案したように、socket.setdefaulttimeout(5) を使用してみてください。

urllib2 doc の詳細

ソケットとレイヤー

Web からリソースを取得するための Python サポートは階層化されています。urllib2 は httplib ライブラリを使用し、これはさらにソケット ライブラリを使用します。

Python 2.3 では、ソケットがタイムアウトするまでに応答を待機する時間を指定できます。これは、Web ページを取得する必要があるアプリケーションで役立ちます。デフォルトでは、ソケット モジュールにはタイムアウトがなく、ハングする可能性があります。現在、ソケット タイムアウトは httplib または urllib2 レベルでは公開されていません。ただし、次を使用して、すべてのソケットに対してデフォルトのタイムアウトをグローバルに設定できます。

import socket
import urllib2

# timeout in seconds
timeout = 10
socket.setdefaulttimeout(timeout)
于 2020-04-21T12:52:29.603 に答える