phpQuery 是一款採用 php 開發的服務端項目,對於使用過 jQuery 的同學,可以很容易的使用 phpQuery,因為 phpQuery 採用了 jQuery 的思想,你可以像 jQuery 一樣使用 CSS3 選擇器處理頁面內容,獲取你想要的頁面信。
phpQuery 是基於 php5 新添加的 DOMDocument 。而 DOMDocument 則是專門用來處理 html/xml 。它提供了強大 xpath 選 擇器及其他很多 html/xml 操作函數,使得處理 html/xml 起來非常方便。

phpQuery 使用
1 、項目下載地址:https://code.google.com/p/phpquery/
2 、使用 phpquery 採集網站標題:
include 'phpQuery/phpQuery.php'; //導入 phpQuery 庫
phpQuery::newDocumentFile('http://www.wpnoob.cn/'); //實例化
echo pq("title")->text(); //獲取站點標題
是不是很簡單,只需要三行代碼,我們就可以快速採集網站的標題,出現中的 pq() 是一個功能強大的方法,跟 jQuery 的 $() 如出一轍,jQuery 的選擇器基本上都能使用在 phpQuery 上,只要把 「.」 變成 「->」 。如上例中,pq(「title」) 網頁的標題,如何使用 text() 函數輸出網頁標題的文本信息,我們還可以使用 jquery 中的 html() 等函數。
phpquery 除了可以解析普通的文本外,還可以解析 XML,首先我們創建一個 test.xml 文件,如下代碼:
<?xml version="1.0" encoding="utf-8"?>
<root>
<contact>
<name> 張三</name>
<age>22</age>
</contact>
<contact>
<name> 王五</name>
<age>18</age>
</contact>
</root>
現在我們使用 phpQuery 獲取名字為張三的聯繫人的年齡,代碼如下:
include 'phpQuery/phpQuery.php';
phpQuery::newDocumentFile('test.xml');
echo pq('contact > age:eq(0)');
輸出結果:18
phpQuery 可以很好應用在網站的採集上,而且使用也非常簡單。
對於 html 頁面,不應該使用正則的原因主要有 3 個
1 、編寫條件表達式比較麻煩
尤其對於新手,看到一堆」 不知所云」 的字符評湊在一起,有種腦袋都要炸了的感覺。如果要分離的對象沒有太明顯的特徵,正則寫起來更是麻煩。
2 、效率不高
對於 php 來説,正則應該是沒有辦法的辦法,能通過字符串函數解決的,就不要勞煩正則了。用正則去處理一個 30 多 k 的文件,效率不敢保證。
3 、有 phpQuery
如果你使用過 jQuery,想獲取某個特定元素應該是輕而易舉的事情,phpQuery 讓這成為了可能。
項目地址:https://code.google.com/p/phpquery/
文檔:https://code.google.com/p/phpquery/wiki/Selectors