2011-01-09 35 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真的可以在一瞬間敲掉這樣的東西。不知道關於連接到數據庫,但解析將是一個蛋糕散步。