検出されたくないWebクローラーを検出するには、どのようなオプションがありますか?
(リスティング検出手法により、スマートステルスクローラープログラマーがより優れたスパイダーを作成できることは知っていますが、スマートステルスクローラーをブロックできるとは思いません。間違いを犯したものだけです。)
私はgooglebotやYahoo!などの素晴らしいクローラーについて話しているのではありません。啜る。私はボットがいいと思います:
- ユーザーエージェント文字列でボットとして自分自身を識別します
- robots.txtを読み取る(そしてそれに従う)
悪いクローラーについて話している、一般的なユーザーエージェントの後ろに隠れている、私の帯域幅を使用している、そして見返りに何も与えていない。
更新されたリストを作成できるトラップドアがいくつかあります(Chris、gsに感謝)。
- robots.txtにのみリストされている(Disallowとマークされている)ディレクトリを追加します。
- 非表示のリンクを追加する(おそらくrel = "nofollow"?とマークされている)、
- style = "display:none;" リンクまたは親コンテナ
- Zインデックスが高い別の要素の下に配置
- CaPiTaLiSaTioNを理解していない人を検出し、
- 誰が返信を投稿しようとしているかを検出しますが、常にキャプチャに失敗します。
- POST専用リソースへのGETリクエストを検出する
- リクエスト間の間隔を検出する
- 要求されたページの順序を検出する
- 誰が(一貫して)http経由でhttpsリソースをリクエストするかを検出する
- 画像ファイルを要求しない人を検出します(これは、既知の画像対応ブラウザのユーザーエージェントのリストと組み合わせて、驚くほどうまく機能します)
一部のトラップは、「良い」ボットと「悪い」ボットの両方によってトリガーされます。それらをホワイトリストと組み合わせることができます:
- 罠を引き起こす
- リクエスト
robots.txt
? - 従ったため、別のトラップをトリガーしません
robots.txt
ここでもう1つ重要なことは
、スクリーンリーダーを使用している視覚障害者を検討してください。あなたに連絡する方法を提供するか、(画像以外の)キャプチャを解決してブラウジングを続行してください。
通常の人間の訪問者として自分自身をマスクしようとしているWebクローラーを自動的に検出する方法は何ですか。
更新
問題はそうではありません:すべてのクローラーをどのように捕まえるのですか?問題は、クローラーを検出する可能性を最大化するにはどうすればよいかです。
いくつかのスパイダーは本当によく、実際にhtml、xhtml、css javascript、VBスクリプトなどを解析して理解し
ています... 私には幻想がありません。私はそれらを倒すことができません。
ただし、一部のクローラーがどれほど愚かであるかは驚くでしょう。(私の意見では)愚かさの最も良い例は:すべてのURLをリクエストする前に小文字にキャストすることです。
そして、さまざまなトラップドアを回避するには「十分に不十分」なクローラーがたくさんあります。