1

Firefox でhttp://bitbucket.org/tortoisehg/stable/wiki/Home/ReleaseNotesを参照すると、HTML のページが表示されます。しかし、Pythonでこれを試してみると:

urllib をインポート

サイト = 'http://bitbucket.org/tortoisehg/stable/wiki/Home/ReleaseNotes'
req = urllib.urlopen(サイト)
テキスト = req.read()

私は以下を取得します:

500 内部サーバー エラー サーバーで内部エラーまたは構成ミスが発生したため、要求を完了できませんでした。

私は何を間違っていますか?

4

3 に答える 3

3

あなたは何も悪いことをしていません.bitbucketはいくつかのユーザーエージェント検出を行います(たとえば、Mercurialクライアントを検出するため)。ユーザーエージェントを変更するだけで修正されます(部分文字列がない場合urllib)。

これに関する問題を記入する必要があります: http://bitbucket.org/jespern/bitbucket/issues/new/

于 2009-08-26T15:36:53.863 に答える
3

表面上は何も悪いことをしていません。エラー ページにあるように、サイトの管理者に連絡する必要があります。なぜなら、彼らは何が起こっているのかを説明するサーバー ログを持っているからです。幸いなことに、bitbucket のサイト管理者はフレンドリーな集団です!

ブラウザーが 1 つの方法で設定するヘッダーまたはヘッダーの組み合わせがあり、urllib が別の方法で設定し、サーバーのバグが後者の場合にくすぐられることは間違いありません。たとえば、firefox の firebug で送信されているヘッダーを正確に確認し、サーバーのバグを正確に特定するまでそれらを再現したい場合があります。ほとんどの場合、そのバグをくすぐるのは、ユーザー エージェントまたは「受け入れ」っぽいヘッダーになるでしょう。

于 2009-08-26T15:18:37.550 に答える
-2

あなたが何か間違ったことをしているとは思いません -- どうやらこのサーバーがダウンしていたようですね? あなたのスクリプトは私にとってはうまくいきました(「テキスト」にはブラウザに表示されるものと同じデータが含まれていました)。

于 2009-08-26T15:16:03.030 に答える