6


0

サーバーに過大な負荷がかからないようにするために、クローラーが同じサーバーに繰り返しヒットするまで待機する標準的な期間はありますか。

そうでない場合は、クローラが丁寧であると見なされるまでの待ち時間として推奨できるものについての提案はありません。

この値もサーバーによって異なりますか…​ もしそうなら、どのようにしてそれを決定することができますか?

4 Answer


3


IBMに関するこの記事は、http://publib.boulder.ibm.com/infocenter/discover / v8r5m0 / index.jsp?topic = / com.ibm.discovery.es.ad.doc / administering / iysacwebrobotsで詳細に説明しています。 htm [Webクローラーがロボット除外プロトコルを使用する方法]およびhttp://publib.boulder.ibm.com/infocenter/discover / v8r 5m0 / index.jsp?topic = / com.ibm.discovery.es.ad.doc / administration / iiysacwebrec.htm [Webクローラーの再クロール間隔設定]

記事を引用する。

_ _ ページが初めてクロールされるとき、クローラーは、ページがクロールされた日時と、指定された最小および最大再クロール間隔の平均を使用して再クロール日を設定します。 その日までにページは再クロールされません。 その日以降にページが再クロールされる時間は、クローラの負荷と、クロールスペース内の新しいURLと古いURLのバランスによって異なります。

ページが再クロールされるたびに、クローラはコンテンツが変更されたかどうかを確認します。 コンテンツが変更された場合、次の再クロール間隔は前のものよりも短くなりますが、指定された最小再クロール間隔より短くなることはありません。 コンテンツが変更されていない場合、次の再クロール間隔は前のものよりも長くなりますが、指定された最大再クロール間隔を超えることはありません。 _ _

これは彼らのWebクローラーについてですが、あなた自身のツールを構築している間読むことにおいて非常に役に立ちます。


1


私はこれが少し遅れるかもしれないことを知っています、しかし答えはこの質問で私を助けていませんでした。 私もクローラーがサーバーを攻撃する頻度を心配しています。 特にwikipedia.orgのrobots.txtを読むと、「1秒間に何度もヒットしますが、受け入れられません」というボットが許可されていません。

私はこの興味深いMS Researchの記事「Webクローラーアーキテクチャ - http://research.microsoft.com/pubs/102936/EDS-WebCrawlerArchitecture.pdf」を見つけました。 以下は、政治家についての論文からのものです。

_ 多くの可能なポライトネスポリシーがあります。実装が特に簡単なのは、同じWebサーバーへの同時リクエストを許可しないことです。少し洗練されたポリシーは、特定のWebサーバーに再度接続する前に、最後のダウンロード時間に比例した時間だけ待つことです。 _


0


それは内容がどのくらい頻繁に変わるかによるでしょう。 たとえば、静的な記事を含むサイトよりも頻繁にニュースサイトをクロールすることは理にかなっています。

最適なものをどのように決定するかについて - それはあなたがどのようにあなたが最新のデータを持っていることの価値に対してフェッチ、索引付けなどのコストを判断するかに依存するでしょう。 それは完全にあなた次第です - しかし、あなたはおそらく観察に基づいて、サイトが時間とともにどれほど変化しているかを解明するために何らかの経験則を使用しなければならないでしょう。 サイトが連続して3回のフェッチのために変更されていない場合は、次回フェッチする前にもう少し長く待つことをお勧めします。 逆に、サイトを取得するたびにサイトが常に変更される場合は、更新を見逃さないようにするためにもう少し積極的になることをお勧めします。


0


現在のサーバーの負荷とサーバーの機能に大きく依存しているため、サイトにアクセスできる頻度に最低限の間隔はないと思います。

応答時間とタイムアウト率をテストすることができます。1つのサイトの応答が遅くなったり、タイムアウトエラーが発生したりする場合は、クローラが低速または時間の原因にならない場合でも、再ヒット間隔を長くする必要がありますアウト。