URL、タイトル、説明の列を持つMysqlテーブルがあります。600万を超える行があり、各URL列にはWebからのURLが含まれています。次に、テーブル内の各URLのタイトルとメタ説明を追加する必要があります。dmozデータベースをダウンロードし、そこから可能な限りのタイトルと説明を取得することで、作業の一部を完了しましたが、まだ数百万のURLが残っています。これは長いプロセスになることを私は知っています、そして私はそれを実行するための最も速い方法を見つけようとしています。
CURLを使用してURLからTitleとMeta:Decriptionを取得する次のコードがありますが、phpでそれを最大限に活用して、できるだけ早く作業を完了する方法がわかりません。最初にURLをテキストファイルにエクスポートする必要があると考えているので、データベースへのルックアップを保存しますが、そこからどのように移動するかわかりません。私はこの仕事専用の専用サーバー(32 GBのE3-1230V2)を持っているので、電力はそこにあります。問題はそれをどのように最適に使用するかです...
ありとあらゆるアドバイスに感謝します!
CURLコードは次のとおりです。
function get_info($url)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
$html = get_info($url);
$doc = new DOMDocument();
@$doc->loadHTML($html);
$nodes = $doc->getElementsByTagName('title');
$title = $nodes->item(0)->nodeValue;
$metas = $doc->getElementsByTagName('meta');
for ($i = 0; $i < $metas->length; $i++)
{
$meta = $metas->item($i);
if($meta->getAttribute('name') == 'description')
$description = $meta->getAttribute('content');
insert into table SET Title ='".$title."', Description = '".$description."'