2

私は現在、ローカルサーバーからページを取得するためにPython+Mechanizeを使用しています。ご覧のとおり、コードは「localhost」をプロキシとして使用しています。プロキシは、Fiddler2デバッグプロキシのインスタンスです。これは期待どおりに機能します。これは、私のマシンがtest_boxに到達できることを示しています。

import time
import mechanize

url = r'http://test_box.test_domain.com:8000/helloWorldTest.html'
browser = mechanize.Browser();
browser.set_proxies({"http": "127.0.0.1:8888"})
browser.add_password(url, "test", "test1234")

start_timer = time.time()

resp = browser.open(url)
resp.read()

latency = time.time() - start_timer

ただし、browser.set_proxiesステートメントを削除すると、機能しなくなります。エラー<"urlopenエラー[Errno10061]ターゲットマシンがアクティブに拒否したため、接続できませんでした>"が表示されます。重要なのは、どのブラウザでも自分のマシンからtest_boxにアクセスできるということです。これは、私のマシンからtest_boxにアクセスできることも示しています。

私の疑惑は、これはMechanizeが適切なプロキシ設定を推測しようとしていることと関係があるということです。つまり、私のブラウザは、test_domain.com以外のドメインのWebプロキシにアクセスするように構成されています。したがって、mechanizeは実際にはプロキシを使用すべきではないのにWebプロキシを使用しようとしているのではないかと思います。

プロキシ設定を推測せず、代わりにtest_boxへの直接接続を強制するようにmechanizeに指示するにはどうすればよいですか?

4

1 に答える 1

3

ああ、自分で見つけた。docstringは言う:

「プロキシの使用をすべて回避するには、空のプロキシdictを渡します。」

これで問題が修正されました。

于 2013-03-06T12:55:46.877 に答える