-3

raw_html = urlopen(url).read() を使用して、Python を使用して特定の URL を取得しようとしています。

「raw_htm」を調べると、予想される HTML/テキストが、サイトをクロールできないことを本質的に示すテキストに置き換えられていることがわかりました。

ただし、UNIX/python から「curl -O」を使用して同じ URL を取得すると、ページは問題なくダウンロードされます。

不一致の理由と、UNIX で curl コマンドを使用する場合と同じように html を取得できるようにするには、Python 内でどの方法を使用する必要がありますか?

ご意見をお寄せいただきありがとうございます。

4

1 に答える 1

2

HTTP クライアントが要求を行うと、それ自体がサーバーに対して識別されます。この場合、サーバーはクライアントがボットであるかどうかをチェックし、ボットである場合はアクセスを拒否します (ただし、明らかに Curl の検出に失敗します)。

ユーザー エージェント文字列を設定してブラウザを偽装することで、これを回避できます。でそれを行う方法については、この質問を参照してくださいurllib。ただし、サーバーの所有者がクロールを望んでおらず、とにかくクロールしていることを検出した場合 (ページを要求するレートが高すぎるため)、サイトへのアクセスがブロックされていることに気付く可能性があります。所有者はなりすましよりも良い考えかもしれません。

于 2013-02-12T11:25:02.650 に答える