1

だから私はこのウェブサイトhttp://dl.acm.org/dl.cfmから解析しようとしています。この Web サイトでは Web スクレイパーが許可されていないため、HTTP error: 403 forbidden.

私はpythonを使用しているので、フォームに入力するために機械化を試みました(フォームの入力またはボタンのクリックを自動化するため)が、再び同じエラーが発生しました。

関数を使用してhtmlページを開くことさえできませんurllib2.urlopen()。同じエラーが発生します。

誰でもこの問題を解決できますか?

4

1 に答える 1

4

WebサイトでWebスクレイパー/ボットが許可されていない場合は、そもそもサイトでボットを使用しないでください。

しかし、あなたの質問に答えるために、私はウェブサイトがurllibのデフォルトのユーザーエージェントをブロックしているのではないかと思います。おそらく、独自のリクエストを作成して、ユーザーエージェントを既知のブラウザにスプーフィングする必要があります。

headers = {"User-Agent":"Mozilla/5.0 (X11; U; Linux i686) Gecko/20071127 Firefox/2.0.0.11"}
req = urllib2.Request("http://dl.acm.org/dl.cfm", headers=headers)
urllib2.urlopen(req)

編集:私はこれをテストしました、そしてそれは働きます。このサイトは、ユーザーエージェントに基づいて積極的にブロックし、悪意のあるボットがrobots.txtを無視するのを阻止しています。

于 2012-07-27T23:29:41.320 に答える