2014年8月11日月曜日

PHP: 連番のページを保存する簡易クローラ

コンソールから実行する。
別途、必要に合わせて例外処理や HTTP ヘッダの設定など追加。
$start = 1;  // 取得開始番号
$end = 500;  // 取得終了番号
$target_url = 'http://target-server.com/page/';  // この後ろに連番が付く
$delay = 10;  // アクセス間隔(秒)
for($i = $start; $i <= $end; $i++) {
    $html = file_get_contents($target_url . $i);
    file_put_contents('dst/' . $i . '.html', $html);
    echo "\r" . '(' . $i . '/' . $end . ') を保存完了 残り' . ceil(($end - $i) * $delay / 60) . '分';
    sleep($delay);
}
echo "\n" . '全てのページを取得完了';

0 件のコメント:

コメントを投稿