既然要爬資料,有個好用的工具當然是會比較好啦。
正所謂工欲善其事,必先利其器。
所以本次要來介紹一下phpQuery這個玩意。
什麼是phpQuery?從字面上你應該很容易聯想到jQuery,
事實上,他就是php版的jQuery,
因此我們可以很簡單地用這個玩意去巡覽HTML元素的內容,
達到我們想爬資料的目的。
事實上,過年期間我在寫爬Android Market資料時,
就是用這個玩意幫我處理掉擷取app資訊的麻煩事。
以下稍微講解一下簡單用法:
在phpQuery的專案網站下載主要的類別檔,這個壓縮黨內只有一個檔案。下載後解壓縮到你要的地方後就可以了。
接著開啟編輯器來寫一段範例程式碼吧:
以上是簡單利用phpQuery作尋覽的範例,
當然phpQuery也是可以作HTML元素的內容維護,
使用方法與jQuery一樣,
所以這方面可以參考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的說明文件就好。
留言