《QueryList一個簡單、靈活、強大的通用php采集類》要點:
本文介紹了QueryList一個簡單、靈活、強大的通用php采集類,希望對您有用。如果有疑問,可以聯系我們。
QueryList是一個基于phpQuery的PHP通用列表采集類,是一個簡單、 靈活、強大的采集工具,采集任何復雜的頁面基本上就一句話就能搞定了.
我們有時需要抓取一個網頁的內容,但只需要特定部分的信息,通常會用正則來解決,這當然沒有問題.正則是一個通用解決方案,但特定情況下,往往有更簡單快 捷的辦法.比如你想查詢一個編程方面的問題,當然可以使用Google,但stackoverflow 作為一個專業的編程問答社區,會提供給你更多,更靠譜的答案.
對于html頁面,不應該使用正則的原因主要有3個
1、編寫條件表達式比較麻煩
尤其對于新手,看到一堆”不知所云”的字符評湊在一起,有種腦袋都要炸了的感覺.如果要分離的對象沒有太明顯的特征,正則寫起來更是麻煩.
2、效率不高
對于php來說,正則應該是沒有方法的方法,能通過字符串函數解決的,就不要勞煩正則了.用正則去處理一個30多k的文件,效率不敢保證.
3、有phpQuery
如果你使用過jQuery,想獲取某個特定元素應該是輕而易舉的事情,phpQuery讓這成為了可能
phpQuery
在介紹QueryList之前,有必要先來介紹一下phpQuery.
phpQuery是一個用php實現的類似jQuery的開源項目,可以在服務器端以jQuery的語法形式解析網頁元素.
基本上jQuery的選擇器都可以用在phpQuery上,phpQuery很強大可以對DOM進行任何復雜的操作,而接下來要介紹的QueryList則相當于phpQuery的子集,發揮它采集方面的強大功能.
QueryList
QueryList是一個基于phpQuery的PHP通用列表采集類,得益于phpQuery,讓使用QueryList幾乎沒有任何學習成本,只要會CSS3選擇器就可以輕松使用QueryList了,它讓PHP做采集像jQuery選擇元素一樣簡單.
QueryList的幾個特點:
1.只有一個核心的API,靜態辦法Query
2.用jQuery選擇器來選擇頁面元素
3.自帶過濾功能,可過濾掉無用的內容
4.支持無限層級嵌套采集
5.采集結果直接以采集規則以列表的形式有序的返回
6.支持擴展
獲取QueryList插件
QueryList擴展需要選擇性的單獨安裝,以下是幾個插件是默認的演示插件
Request網絡操作擴展:
Multi多線程擴展:
Login模擬登陸擴展
demo
<?php
require 'QueryList/vendor/autoload.php';
use QL\QueryList;
$html = <<<STR
<div id="one">
<div class="two">
<a >QueryList官網</a>
<img src="http://querylist.com/1.jpg" alt="這是圖片">
<img src="http://querylist.com/2.jpg" alt="這是圖片2">
</div>
<span>其它的<b>一些</b>文本</span>
</div>
STR;
$rules = array(
//采集id為one這個元素里面的純文本內容
'text' => array('#one','text'),
//采集class為two下面的超鏈接的鏈接
'link' => array('.two>a','href'),
//采集class為two下面的第二張圖片的鏈接
'img' => array('.two>img:eq(1)','src'),
//采集span標簽中的HTML內容
'other' => array('span','html')
);
$data = QueryList::Query($html,$rules)->data;
print_r($data);
?>
更多API說明,請查看官方API文檔.(https://querylist.cc/)
如果覺得本文章對您有所贊助,請為小編點贊.如有疑問請留言吧.
維易PHP培訓學院每天發布《QueryList一個簡單、靈活、強大的通用php采集類》等實戰技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培養人才。