2011-01-09 36 views
-2

我想每隔一小时刮一个网站,让我们说CNN,并将H1中的任何标题添加到我的MYSQL表的新行中。我怎么做?使用PHP Curl,我想将H1刮入数据库

+3

我会为你做200美元。 – 2011-01-09 09:20:59

+0

你的问题是什么?你有什么尝试? – alexn 2011-01-09 09:28:30

+3

您可能希望挖掘Google,学习一下,当您对特定问题有特定疑问时再回来。你可以先搜索Google“php curl tutorial”,然后“用php解析html”,最后选择“php mysql tutorial”。把这些技巧结合起来解决所有的问题,除* hourly *位外,这可能最适合[Cron](http://en.wikipedia.org/wiki/Cron)。 – Kevin 2011-01-09 09:34:12

回答

3

我不指望任何人为你完成整个工作,但这里有一些让你开始的东西。首先,你需要得到实际的来源,你可以使用file_get_contentscurl这个。有很多关于如何在这里的信息。

然后,你需要刮所有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

然后您需要将它保存到您的数据库,您可以使用mysqliPDO库。

最后,你需要每小时运行一次。使用cron-jobs来做到这一点。您可以找到有关如何设置您的cron作业的信息here

这应该有助于开始。您可能希望为此添加更多功能,例如确保您不添加重复的标题等。

0

您知道,这让我好奇。我只是在玩NodeJS。我敢打赌,服务器端的JQuery和AJAX真的可以在一瞬间敲掉这样的东西。不知道关于连接到数据库,但解析将是一个蛋糕散步。