私は、さまざまな公開Webサイトをクロールし、それらのデータを処理/集約するいくつかの機能を開発します。電子メールアドレスを探すのに嫌なものはありません。実際、サイトへのトラフィックを増やす可能性があります。しかし、私は余談です。
敬意以外robots.txt
、(a)悪意のある、または禁止されている可能性があると思われることを回避し、(b)サイトの所有者/ウェブマスターに問題を引き起こさないために私が従うべき規則またはガイドラインはありますか、書いても書いてもいませんか?
私が考えることができるいくつかの例は重要かもしれないし、重要ではないかもしれません:
しかし、それは実際には単なる吐き気です。クモを書いたり利用したりしようとする人に広く適用できる、実証済みの知恵はありますか?
Robots.txtに従うだけでなく、<meta>
要素およびリンクのnofollow
およびnoindex
に従います。
Robots.txtが インデックス作成をブロックする適切な方法ではない であると考える人は多く、そのため、多くのサイト所有者に<meta name="robots" content="noindex">
タグに頼ってWebクローラーに指示しないように指示していますページにインデックスを付けます。
Webサイト間の接続のグラフ(PageRankに類似したもの)を作成しようとしている場合(および<meta name="robots" content="nofollow">
)は、ソースサイトが宛先サイトを十分に信頼していないため、適切な推奨が得られないことを示しています。したがって、宛先サイトにインデックスを付けることはできますが、2つのサイト間の関係を保存するべきではありません。
SEOは実際の科学というよりは芸術であり、何をしているのかを知っている多くの人々や、何をしているのかを知っている人々のエグゼクティブサマリーを読む多くの人々によって実践されています。他のサイトがSEOmozのブログ記事を耳にしたり読んだりして正しく解釈されないために他のサイトが完全に許容できると判断したことでサイトからブロックされるという問題に遭遇します。
その人間的要素のため、Google、Microsoft、またはYahoo!でない限り、特に証明されていない限り、悪意があると見なされます。 Webサイトの所有者に脅威がないかのように行動し、潜在的に悪意のある(ただし無害な)クローラーにどのように行動してもらいたいかに応じて行動するように、特別な注意を払う必要があります。
/admin/
が含まれるURLのクロールは避けてください。それでも、UAスプーフィングやクロールパターンを意図的にマスキングするなどのブラックハットテクニックに頼らない限り、困難な戦いになるでしょう。多くのサイト所有者は、上記と同じ理由で、未知のクローラーを目にすることなくブロックします。 「自分のサイトをハッキング」しようとしない人がいる可能性。たくさんの失敗に備える。
未知のクローラが持つであろうネガティブなイメージと戦うためにあなたができることの一つは、あなたが誰であるかをあなたのユーザーエージェント文字列で明らかにすることです:
Aarobot Crawler 0.9 created by John Doe. See http://example.com/aarobot.html for more information.
http://example.com/aarobot.html
は、達成しようとしていることと、なぜ脅威ではないのかを説明します。そのページにはいくつかのものが必要です。
最後の1つが重要です。適切なオプトアウトはMoney Back Guarantee™のようなものであり、不当な金額の好意を獲得します。人道的である必要があります。1つの簡単な手順(メールアドレスまたは理想的にはフォーム)で包括的(「落とし穴」はないはずです。オプトアウトは、例外なくクロールを停止することを意味します)。
これですべての質問に答えられるわけではありませんが、あなたとあなたがクロールするサイトに役立つと思います。
注意を引くことなくWebサイトをブルートフォースでブルートフォースする手法と同様に、クロールする必要があるサイトのプールが十分にある場合は、他のすべてのサイトの次のページをクロールするまで、サイトの次のページをクロールしないでください。 。まあ、最近のサーバーは HTTP接続の再利用 を許可するので、オーバーヘッドを最小限に抑えるために複数の処理を実行する必要があるかもしれませんが、アイデアはまだ残っています。 次のサイトに移動するまで、1つのサイトを完全にクロールしないでください。愛を分かち合う。
1日の終わりには、同じ数のページをクロールすることはできますが、単一サイトの平均帯域幅使用率ははるかに低くなります。
ドゥームのスパイダーになりたくない場合、確実な方法はありません。誰かが 豆を鼻に突き刺す を望んでいる場合、彼らはおそらくあなたが予測できない方法でそうするでしょう。とはいえ、時々有効なページを見逃しても構わない場合は、リンクをたどらないリンクの単語のブラックリストを用意してください。例えば:
誰にでもできることではありませんが、人々が難しい方法を学ばなければならないことを防ぐことができない場合もあります;)
私のちょっとしたアドバイスはlistenクロールするWebサイトが伝えていることを聞き、それに応じてクロールを動的に変更することです。
サイトは遅いですか?クロールが遅くなるため、DDOSを実行しないでください。速いですか?次に、もう少しクロールします。
サイトにエラーがありますか?クロールを減らすことで、すでに強要されているサイトにストレスをかける必要がなくなります。指数関数的に増加する再試行時間を使用して、サイトのエラーが長くなるほど再試行回数を減らします。ただし、最終的には後で再試行することを忘れないでください。特定のURLパスでの1週間のエラーなどにより、不足しているものをすべて確認できます。
404をたくさん取得していますか? (私たちの派手な404ページもサーバーの時間がかかることを忘れないでください!)おそらくすべての行方が欠落しているので、今のところそのパスでそれ以上のURLをクロールしないでください。もしfile001.html
-file005.html
はありません。あなたにドルをドーナツに賭けますfile999.html
もそうではありません!または、そのパスで何かを取得する時間の割合を下げることもできます。
これは、ターゲットサイトから返される信号に関係なく、同じように実行する1つのロボット戦略を持っているため、多くの単純なクローラーが深刻な誤りを犯している場所だと思います。
スマートクローラーは、接触しているターゲットサイトに対してreactiveです。
他の人はマントラのいくつかに言及しましたが、いくつか追加させてください。
ファイルのタイプとサイズに注意してください。これらの巨大なバイナリをプルしないでください。
いくつかの典型的なウェブサーバーの「ディレクトリ一覧」ページを最適化します。特に、サイズ、日付、名前、権限などを並べ替えることができます。各並べ替え方法をクロールの個別のルートとして扱わないでください。
可能な場合は常にgzip(オンザフライ圧縮)を要求します。
深さを制限するか、再帰を検出します(またはその両方)。
ページサイズを制限します。一部のページは、メールを破棄するボットを阻止するターピットを実装しています。これは、かたつむりの速度で読み込まれ、テラバイト長のページです。
404ページをインデックスに登録しないでください。最大のインデックスを誇るエンジンはこれを行い、その代わりに当然の憎悪を受けます。
これは難しいかもしれませんが、負荷分散ファームを検出してみてください。 v329.Host.com/pages/article.php?99999がv132.Host.com/pages/article.php?99999と同じ結果を返す場合は、v001.Host.comからv999までのサーバーの完全なリストを取得しないでください。 Host.com
少しだけ追加します。
著作権とその他の法的問題:公開ウェブサイトであるため、著作権はないかもしれませんが、データの保存には他の法的問題があるかもしれません。
もちろん、これは、どの国のデータを保存しているか(どこに保存しているか)によって異なります。米国の愛国者法とEUのデータ保護指令の問題の適例。問題のエグゼクティブサマリーは、米国の企業がデータを例えばに与えなければならないということです。ユーザーに通知せずに尋ねられた場合、データ保護指令がユーザーに通知する必要があるとFBIが尋ねた場合。 Se http://www.itworld.com/government/179977/eu-upset-Microsoft-warning-about-us-access-eu-cloud
あなたの名前に関連付けられたそれまたはスパイダーのいずれかであなたのウェブクローラーを呼び出します。これは重要。分析エンジンなどは、あなたを...スパイダーとして関連付けるものを探します。 ;)
私が見た方法は、要求ヘッダーUser-Agentを介して