5

トラフィックは 24 時間にわたって不均等に分散されるため、ピーク時間帯はクローラーを許可せず、混雑していない時間帯は許可したいと考えています。

これを達成する方法はありますか?

編集:すべての良いアドバイスをありがとう。

これは、私たちが見つけた別の解決策です。

2bits.com には、特定の IP アドレスからの接続数を制限するための IPTables ファイアウォールの設定に関する記事があります。

記事

IPTables の設定:

  • connlimit の使用

新しい Linux カーネルには、iptables 用の connlimit モジュールがあります。次のように使用できます。

iptables -I INPUT -p tcp -m connlimit --connlimit-above 5 -j REJECT

これにより、各 IP アドレスからの接続が最大 5 つの同時接続に制限されます。この種の「配給」接続は、クローラーが同時にサイトにアクセスするのを防ぎます。*

4

6 に答える 6

6

クローラーが作業を行う時間を特定することはできませんが、クローラーがCrawl-delayページを要求する頻度を減らすことができる場合があります。これは、ユーザーがページをすばやく要求するのを防ぐのに役立ちます。

例えば:

User-agent: *
Crawl-delay: 5
于 2011-01-19T00:01:32.987 に答える
3

robots.txt ファイルでそれを制御することはできません。一部のクローラーはそのような機能をサポートしている可能性がありますが、大きなものは (私の知る限り) サポートしていません。

このような場合、robots.txt ファイルを動的に変更することもお勧めできません。ほとんどのクローラーは robots.txt ファイルを一定時間キャッシュし、キャッシュを更新するまで引き続き使用します。「適切な」時間にキャッシュすると、通常どおり 1 日中クロールする可能性があります。「間違った」タイミングでキャッシュすると、クロールが完全に停止します (さらに、インデックスに登録された URL がインデックスから削除されることさえあります)。たとえば、Google は通常、robots.txt ファイルを 1 日キャッシュします。つまり、1 日の間に行われた変更は Googlebot には表示されません。

クロールがサーバーに過度の負荷を引き起こしている場合は、個々のクローラーのクロール レートを調整できる場合があります。たとえば、Googlebot の場合は、Google Webmaster Toolsでこれを行うことができます。

さらに、負荷が高いときにクローラーがクロールを試みた場合は、常に503 HTTP 結果コードを提供できます。これにより、クローラーは後で確認するようになります (クローラーが戻ってくる時期がわかっている場合は、retry-after HTTP ヘッダーを指定することもできます)。厳密に時間帯に基づいてこれを行うことは避けたいと思いますが (これにより、サイトマップ、コンテキスト広告、ウェブサイトの検証など、他の多くの機能がブロックされ、一般的にクロールが遅くなる可能性があります)、例外的に、それをするのは理にかなっています。長期的には、サーバーの負荷が高すぎてコンテンツをクローラーに正常に返すことができない場合にのみ、これを行うことを強くお勧めします。

于 2011-01-22T14:25:14.277 に答える
2

これは、一部の robots.txt 構文を使用して行うことはできません。この機能は単純に存在しません

時間帯に応じてファイルを実際に変更することで、クローラーに影響を与えることできる場合があります。robots.txtたとえば、Google がクロールの直前にファイルをチェックすることを期待しています。しかし、明らかに、その方法でクローラーを怖がらせて完全に追い払う大きな危険があります。そのリスクは、おそらく、現在の負荷よりも大きな問題になります。

于 2011-01-18T23:54:13.673 に答える
0

まず明確にしましょう:

引用符

このような場合、robots.txt ファイルを動的に変更することもお勧めできません。ほとんどのクローラーは robots.txt ファイルを一定時間キャッシュし、キャッシュを更新するまで引き続き使用します。「適切な」時間にキャッシュすると、通常どおり 1 日中クロールする可能性があります。「間違った」タイミングでキャッシュすると、クロールが完全に停止します (さらに、インデックスに登録された URL がインデックスから削除されることさえあります)。たとえば、Google は通常、robots.txt ファイルを 1 日キャッシュします。つまり、1 日の間に行われた変更は Googlebot には表示されません。回答 11 年 1 月 22 日 14:25 に John Mueller

今週、robot.txt ファイルの名前を変更する chron ジョブを実行してみました。オンオフのスイッチみたいな。毎週月曜日の真夜中に「robot.txt」から「def-robot.txt」に名前を変更すると、クローラーはブロックされなくなります。2 ~ 3 日待ってから、「def-robot.txt」の名前を「robot.txt」に戻す別のスケジュール cron ジョブがあり、クローラーがサイトにアクセスするのをブロックし始めます。だから彼らはこれを行うには長い道のりですが、最初に述べたのはまさに私に起こっていることです.

「robot.txt が Google のサイトへのアクセスを週の半分ブロックしているため、GoogleBot がリンクが正しいことを確認できなかったため、インデックス登録されたリンクのすべてではないにしても、大幅に減少しました。単純です。ファイルを次のように変更する Chron ジョブのスケジューリングこれが、スケジュールされた時間ベースで robot.txt をカスタマイズする唯一の方法です。

于 2016-01-27T12:41:56.927 に答える
0

検索エンジンのスパイダーに予約を入れることはできないと思います。

于 2011-01-18T23:55:27.023 に答える