我想每小时刮一个网站,让我们说CNN,并将H1中的任何标题添加到我的MYSQL表的新行中。我该怎么做?
答案 0 :(得分:3)
我不希望任何人为你完成整个工作,但这里有一些东西让你开始。
首先,您需要获取实际来源,您可以使用file_get_contents或curl。有很多关于如何在这里的信息。
然后你需要为所有H1标签刮取CNN。一种简单的方法是使用DOMDocument。这是一个简单的函数,可以从HTML源代码中获取所有标题:
function get_h1($html) {
$dom = new DOMDocument();
@$dom->loadHTML($html); // Supress warnings if our html is not well formed
$headings = $dom->getElementsByTagName("h1");
$retval = array();
foreach($headings as $header) {
$retval[] = $header->nodeValue;
}
return $retval;
}
请注意,这并不考虑不同的编码等。
解析的另一个选择是使用优秀的PHP Simple HTML DOM Parser。
然后您需要将其保存到数据库中,您可以使用mysqli或PDO库。
最后,您需要每小时运行一次。使用cron-jobs执行此操作。您可以找到有关如何设置cron作业here的信息。
这应该有助于您入门。您可能希望为此添加更多功能,例如确保不添加重复标题等。
答案 1 :(得分:0)
你知道,这让我很好奇。我正在玩NodeJS。我敢打赌,服务器端的JQuery和AJAX可以在闪存中真正敲出这样的东西。虽然不确定是否要连接到数据库,但解析将是一个蛋糕步行。