【发布时间】:2011-04-17 19:27:45
【问题描述】:
我正在学习 PHP,我想知道如何每隔一两个小时通过 cURL 从网站自动下载特定的 DIV。
【问题讨论】:
我正在学习 PHP,我想知道如何每隔一两个小时通过 cURL 从网站自动下载特定的 DIV。
【问题讨论】:
你没有。您下载整个页面,然后将其解析为您感兴趣的特定 DIV。
【讨论】:
未测试(可能是错误):
set_time_limit(3600*24); //24 hours
$numDownloads = 12;
for ($i = 0; $i < $numDownloads; $i++)
{
$ch = curl_init('http://www.example.com/');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$content = curl_exec($ch);
curl_close($ch);
if (preg_match('/<div>(.*?)<\/div>/i', $content, $matches))
{
$divContents = $matches[1];
$myFile = 'div'.$i.'.txt';
if ($fh = fopen($myFile, 'w'))
{
fwrite($fh, $divContents)
}
fclose($fh);
}
sleep(3600*2);
}
我建议你放弃循环并在 cron 作业上运行它....
【讨论】:
for ($i = 0; $i < $numDownloads; $i++) { }。可以在此行上指定 div:if (preg_match('/<div>(.*?)<\/div>/i', $content, $matches)) 。唯一的问题是你的 div 必须有一个 id 或一些独特的东西。此外,在使用此代码之前,您应该真正真正地学习 PHP 的基础知识。不知道如何删除循环只会让你以后更头疼。
您可以使用 cURL 下载页面,并使用SimpleXML 对其进行解析以找到您需要的内容。
SimpleXMLElement::xpath 可能是找到所需内容的最快方式。
【讨论】: