使用phpQuery輕松采集Web內容
優(yōu)采云 發(fā)布時(shí)間: 2020-08-07 01:07采集標題
首先看一個(gè)例子. 現在,我想采集新浪的國內新聞頭條. 代碼如下:
include 'phpQuery/phpQuery.php';
phpQuery::newDocumentFile('http://news.sina.com.cn/china');
echo pq(".blkTop h1:eq(0)")->html();
簡(jiǎn)單的三行代碼即可獲取標題內容. 首先將phpQuery.php核心程序收錄在該程序中,然后調用以讀取目標網(wǎng)頁(yè),最后在相應標簽下輸出內容.
pq()是一種功能強大的方法,就像jQuery的$()一樣,jQuery選擇器基本上可以在phpQuery上使用,只需更改“”即可. 到“->”. 如上例所示,pq(“. blkTop h1: eq(0)”)捕獲其class屬性為blkTop的DIV元素,并在DIV中找到第一個(gè)h1標簽,然后使用html()方法獲取h1標簽里面的內容(帶有html標簽)是我們要獲取的標題信息. 如果使用text()方法,則只會(huì )獲得標題的文本內容. 當然,要很好地使用phpQuery,關(guān)鍵是要找到與文檔內容相對應的節點(diǎn).
文章列表采集
下面以另一個(gè)示例獲取網(wǎng)站的博客列表,請參見(jiàn)代碼:
include 'phpQuery/phpQuery.php';
phpQuery::newDocumentFile('http://www.helloweba.net/blog.html');
$artlist = pq(".blog_li");
foreach($artlist as $li){
echo pq($li)->find('h2')->html()."<br />";
}
找到文章標題并通過(guò)遍歷列表中的DIV進(jìn)行輸出就這么簡(jiǎn)單.
解析XML文檔
假設有一個(gè)像這樣的test.xml文件:
張三
22
王五
18
現在我想獲取名為張三的聯(lián)系人的年齡,代碼如下:
include 'phpQuery/phpQuery.php';
phpQuery::newDocumentFile('test.xml');
echo pq('contact > age:eq(0)');
結果輸出: 22
就像jQuery一樣,它很簡(jiǎn)單,即可準確地找到文檔節點(diǎn),在該節點(diǎn)下輸出內容,然后解析XML文檔. 現在,您無(wú)需使用繁瑣的代碼(例如常規算法和內容替換)來(lái)采集網(wǎng)站內容. 有了phpQuery,一切都會(huì )變得更加容易.
項目官方網(wǎng)站地址: