52

以下を回避する方法はありますか?

httperror_seek_wrapper: HTTP Error 403: request disallowed by robots.txt

これを回避する唯一の方法は、サイト所有者 (barnesandnoble.com) に連絡することです。より多くの売り上げをもたらすサイトを構築していますが、特定の深さでアクセスを拒否する理由がわかりません。

私は Python2.6 で mechanize と BeautifulSoup を使用しています。

回避策を期待して

4

8 に答える 8

229

robots.txt は無視してください。

br = mechanize.Browser()
br.set_handle_robots(False)
于 2010-10-03T13:02:38.880 に答える
16

Barnes & Noble との法的なトラブルに巻き込まれる可能性がある場合は、ユーザー エージェントについて嘘をつくこともできます (たとえば、ロボットではなく人間であると信じ込ませるなど)。代わりに、ビジネス開発部門に連絡して、具体的にあなたを承認するよう説得してみませんか? 彼らは間違いなく、価格比較エンジンなどの一部のクラスのロボットによってサイトがスクレイピングされるのを避けようとしているだけです。あなたがそうではないことを彼らに納得させたり、契約に署名したりすることができれば、彼らは喜んでそうするかもしれませんあなたの例外です。

robots.txt にエンコードされたポリシーを破るだけの「技術的な」回避策は、法的なリスクが高い方法であり、私は決してお勧めしません。ところで、robots.txt の読み方は?

于 2010-05-17T00:40:27.253 に答える
5

Mechanize は自動的に robots.txt に従いますが、許可がある場合、または倫理を考慮した場合は無効にすることができます。

ブラウザでフラグを設定します。

browser.set_handle_equiv(False) 

これは robots.txt を無視します。

また、サイトに負荷をかけすぎないように、リクエストを調整してください。(これにより、彼らがあなたを検出して禁止する可能性も低くなります).

于 2010-05-17T01:16:23.623 に答える
3

表示されるエラーは、ユーザー エージェントとは関係ありません。デフォルトでは、mechanize を使用してサイトに移動すると、robots.txt ディレクティブが自動的にチェックされます。この動作を無効にするには、mechanize.browser の .set_handle_robots(false) メソッドを使用します。

于 2010-07-11T23:17:11.443 に答える
1

User-Agent実際の IE/FF User-Agent と一致するようにヘッダーを設定します。

これが私のIE8ユーザーエージェント文字列です:

Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; AskTB5.6)
于 2010-05-17T00:39:51.517 に答える
0

これの倫理について議論することなく、ヘッダーを変更して、たとえば googlebot のように見せることができますか、それとも googlebot もブロックされていますか?

于 2010-05-17T00:40:48.163 に答える
0

どうやら、バイパスするために必要な作業が少なくて済むようです 、robots.txt少なくともこの記事は述べています. そのため、フィルターを無視するには、一部のコードを削除する必要がある場合があります。

于 2010-05-17T00:41:33.367 に答える