0

私は現在、優れた Python Challenge ( http://www.pythonchallenge.com/ ) に取り組んでいます。私が取り組んでいる現在の問題は、urllib ライブラリの使用に関するものですが、問題が発生しています。このライブラリを使用して、会社のファイアウォールを介してサイトに接続しようとしています。いくつかのコードから始めましょう:

proxy = {'http':'http://my.companys.proxy/proxy.pac'}
urllib.urlopen('http://www.pythonchallenge.com', proxies=proxy).read()

これにより http 応答が得られますが、奇妙なことに、Apache HTTP サーバーのテスト ページです。

...Red Hat Enterprise Linuxテスト ページ... このページは、インストール後の Apache HTTP サーバーの適切な動作をテストするために使用されます。

そのため、ファイアウォールの外側で http 接続を正常に達成しているように見えますが、ブラウザとは異なる http 応答を取得しています。別の手がかり (またはない) は、about.php ページに接続しようとしたときです。

urllib.urlopen('http://www.pythonchallenge.com/about.php', proxies=proxy).read()

ただし、これにより次の結果が得られます。

404 見つかりません... Apache 2.2.3 Red Hat サーバー (www.pythonchallenge.com) ポート 80

上記の両方のアドレスは、私のブラウザーでは問題なく機能します (同じプロキシを使用)。私が間違っているアイデアはありますか?

4

1 に答える 1

1

urllibファイルの解析をサポートしていません.pac。表示されるページは、おそらくその.pac構成ファイルを提供するサーバーの Apache ページです。

.pacファイルには、ブラウザにプロキシ ルールを表示する JavaScript コードが含まれています。ファイルを直接開いてみて、代わりに Python チャレンジ サイト用に構成されたプロキシを確認できます。ファイル形式の詳細については、http://en.wikipedia.org/wiki/Proxy_auto-configを参照してください。

どのプロキシ サーバーを使用するかを決定したら、代わりにそれをマッピングでサーバーとして構成します。proxies

于 2013-03-28T10:30:33.517 に答える