QueryPath自体がバニラHTTPリクエストを発行します。必ずしも多数であるとは限りません。
クロールをループで実行し、あるページ数(たとえば10)を連続して取得し、数秒間スリープ状態にしてから別の10秒間グラブすることをお勧めします。以前のポスターは、URLの数が少ないテストを通り
$count = count($urls);
$interval = 10; // Every ten times...
$wait = 2; // Wait two seconds.
for ($i = 0; $i < $count; ++$i) {
// Do whatever you're going to do with QueryPath.
$qp = qp($url);
if ($i > 0 && $i % $interval == 0) {
sleep($wait);
}
}
、そこから上がる:$ URLを仮定すると、あなたがこのような何かを試みることができるURLの配列です。ここで
は、他のいくつかのヒントがあります:
- リモートサイトのrobots.txtファイルは、時々、クローラーがクロールの間(クロール遅延)を待機する時間を示唆しています。これが設定されていれば、あなたの$ wait変数を設定するための良い指標となります。
- サイトをピーク時(例えば、2AM現地時間)に押すと、リモートサイトに要求が氾濫する可能性が最小限に抑えられます。