/ プロキシとしてTorを使用するとき/ Pythonのurllib2タイムアウト? - python、タ​​イムアウト、urllib2、tor

Torをプロキシとして使用するときのPython urllib2のタイムアウト - python、タ​​イムアウト、urllib2、tor

私はプロキシとしてTorを使ってPythonのurllib2を使っていますウェブサイトにアクセスする。ときに サイトのメインページを開くとうまく動作しますが、ログインページを表示しようとすると (実際にはログインしていませんが、表示するだけです)次のエラーが表示されます。

URLError: <urlopen error (10060, "Operation timed out")>

これに対抗するために、私は次のようにしました:

import socket
socket.setdefaulttimeout(None).

私はまだ同じタイムアウトエラーが出ます。

  1. これは、Webサイトがサーバー側でタイムアウトしていることを意味しますか? (私はあまり知りません HTTPプロセスについては、これが愚かな質問である場合はとても申し訳ありません)
  2. Pythonでページを表示できるように修正する方法はありますか?

ありがとう、 ロブ

回答:

回答№1の場合は3

による Pythonソケットドキュメント デフォルトはタイムアウトなしなので、「なし」の値を指定するのは冗長です。

接続が切断されているには、いくつかの原因が考えられます。一つは、あなたのユーザエージェントが "Python-urllib"であることかもしれませんが、これは非常によくブロックされているかもしれません。ユーザーエージェントを変更するには:

request = urllib2.Request("site.com/login")
request.add_header("User-Agent","Mozilla/5.0 (X11; U; Linux i686; it-IT; rv:1.9.0.2) Gecko/2008092313 Ubuntu/9.04 (jaunty) Firefox/3.5")

次の行に沿って何かを使用してURLを試して開く前に、プロキシ設定を上書きしてみることもできます。

proxy = urllib2.ProxyHandler({"http":"http://127.0.0.1:8118"})
opener = urllib2.build_opener(proxy)
urllib2.install_opener(opener)

回答№2の場合は0

私は確かにTorについて十分に知りませんタイムアウトはサーバー側では発生しないかもしれませんが、あなたとサーバーの間のどこかにあるTorノードの1つで発生します。その場合、接続を再試行する以外にできることはありません。


回答№3の場合は0

urllib2.urlopen(url [、data] [、timeout])

オプションのtimeoutパラメータは、接続試行などのブロック操作のタイムアウト(秒単位)(指定されていない場合は、グローバルデフォルトタイムアウト設定が使用されます)。これは実際にはHTTP、HTTPS、FTP、およびFTPS接続に対してのみ機能します。

http://docs.python.org/library/urllib2.html