2

私は自分のコードに urllib2 ライブラリを使用しています。多くの (urlopen) 編集を使用しています: loadurl

ネットワークに問題があります。サイトを閲覧しているときに、ブラウザが特定の Web サイトへの「接続中」でスタックしたり、ブラウザがタイムアウトを返したりすることがあります。

私の質問は、コードで urllib2 を使用すると、特定の Web サイトに長時間接続しようとするとタイムアウトになるか、コードがその行でスタックすることです。

コードで指定せずに urllib2 がタイムアウトを処理できることは知っていますが、この種の状況に適用できますか?

御時間ありがとうございます

編集 :

def checker(self)
 try:
   html = self.loadurl("MY URL HERE")
   if self.ip_ != html:
(...)
 except Exeption, error:
   html = "bad"
4

1 に答える 1

1

私の小さな研究から、urllib2.urlopen()関数はpython 2.6で追加されました

そのため、カスタム タイムアウトをurllib2.urlopen関数に送信することで、タイムアウトの問題を解決する必要があります。コードは次のようになります。

response = urllib2.urlopen( "---insert url here---", None, your-timeout-value)

このyour-timeout-valueパラメーターは、タイムアウトを秒単位で定義するオプションのパラメーターです。

編集:あなたのコメントによると、あまりにも長く待つためのコードは必要ないことがわかりました。スタックしないようにするには、次のコードが必要です。

import socket
import urllib2

socket.setdefaulttimeout(10)

10接続速度とウェブサイトの読み込み時間に関連する数式に従って変更できます。

于 2013-01-03T23:08:53.487 に答える