我有一个包含 URL、标题和描述列的 Mysql 表。有超过 600 万行,每个 URL 列都有一个来自网络的 url。我现在需要为表中的每个 url 添加标题和元描述。我通过下载 dmoz 数据库并从那里获取任何标题和描述来完成部分工作,但我仍然有几百万个 URL。我知道这将是一个漫长的过程,我正在努力找出最快的方法来解决它。
我有以下代码,它使用 CURL 从 url 获取 Title 和 Meta:Decription,但我不确定如何最好地利用 php 来尽快完成工作。我想我应该先将 url 导出到文本文件,所以我们将查找保存到数据库,但我不知道如何从那里开始。我有一台专用服务器(E3-1230V2 和 32 GB)专门用于这项工作,所以电源就在那里,问题是如何最好地使用它......
任何和所有的建议表示赞赏!
这是卷曲代码:
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."'