私はウェブサイトのスクレイピングプロジェクトを持っています。このコードを見てください:
<?php
include('db.php');
$r = mysql_query("SELECT * FROM urltable");
$rows= mysql_num_rows($r);
for ($j = 0; $j <$rows; ++$j) {
$row = mysql_fetch_row($r);
$html = file_get_contents(mysql_result($r,$j,'url'));
$file = fopen($j.".txt", "w");
fwrite($file,$html);
fclose($file);
}
?>
URLのリストがあります。このコードは、各 URL のコンテンツ (HTML) を使用してテキスト ファイルを作成することを意味します。
このコードを実行すると、1 秒あたり 1 つのファイルしか作成できません [各ファイルのサイズは ~ 20KB]。私のインターネットは 3 mbps のダウンロード速度を提供していますが、このコードではその速度を利用できません。
どうすればスピードアップできfile_get_contents()
ますか? または、スレッドを使用したり、php.ini ファイルやその他の方法を構成したりして、このコードを高速化するにはどうすればよいですか?