2012年1月31日 星期二

[野人獻曝] phpQuery的使用簡介

既然要爬資料,有個好用的工具當然是會比較好啦。
正所謂工欲善其事,必先利其器。
所以本次要來介紹一下phpQuery這個玩意。

什麼是phpQuery?從字面上你應該很容易聯想到jQuery
事實上,他就是php版的jQuery,
因此我們可以很簡單地用這個玩意去巡覽HTML元素的內容,
達到我們想爬資料的目的。

事實上,過年期間我在寫爬Android Market資料時,
就是用這個玩意幫我處理掉擷取app資訊的麻煩事。

以下稍微講解一下簡單用法:

在phpQuery的專案網站下載主要的類別檔,這個壓縮黨內只有一個檔案。下載後解壓縮到你要的地方後就可以了。

接著開啟編輯器來寫一段範例程式碼吧:
<?php
// 引入檔案
require '{phpQuery的主檔案}";

/*
這裡是要取得HTML內容的地方,請自行處理
不過為了示範方便,我們假設抓到的東西放在$html這個變數中
*/
$pq = phpQuery::newDocument($html);

// 接著就可以用這種方式找到某個元素內的html內容
$strContent = pq("你要找的元素路徑", $pq)->html();
// 或是某個元素內的屬性
$strContent = pq("你要找的元素路徑", $pq)->attr("某個屬性名稱");
// 也包括某個元素中的文字節點
$strContent = pq("你要找的元素路徑", $pq)->text();

// 最後,為了避免phpQuery吃光記憶體,可以下這行放掉所有已用的記憶體
phpQuery::$documents = array();
?>


以上是簡單利用phpQuery作尋覽的範例,
當然phpQuery也是可以作HTML元素的內容維護,
使用方法與jQuery一樣,
所以這方面可以參考phpQuery的說明文件就好。

張貼留言