要實現php插件QueryList V3采集器的功能,首先就是要下載phpQuery.php和QueryList.php,我們使用的是tp3.2,所以把這兩個文件放到如下圖所示的位置:

然后在控制器上,使用vendor('Caiji.phpQuery');vendor('Caiji.QueryList');引入這兩個文件,然后使用命名空間use QL\QueryList;引入QueryList類,如下圖所示:
然后使用QueryList::方法名,即可調用QueryList類的方法,如下圖所示,我們來采集一個網址:
$html是我們要采集的一個網址,我們打開這個頁面,如下圖:
然后查看這個頁面的源代碼,如下所示:
上面的源代碼劃紅圈的位置,我們需要采集的是網頁的URL,標題,圖片三個參數,這樣QueryList采集器的規則如下:
$rules = array("url"=>array('.all ul li a','href'),
'title'=>array('.all ul li a .news-wrap p','text'),
'picture'=>array('.img-wrap img','data-echo'));
這個就是在這個頁面里,獲取url,title,picture這三個參數的匹配到符合條件的數組,至于這個規則為何這樣寫,可以自行查看QueryList V3的開發文檔,這里不再贅述,然后使用
$data_list = QueryList::Query($html,$rules)->data;執行采集程序,就能獲取到如下數組:

....
這樣就可以對數組進行處理了,首先我們注意到這個圖片的路徑是遠程的絕對地址,如果直接存到數據庫表中,隨時可能因為某種原因打開,所以就需要把圖片保存到服務器上,所以需要運用到以下方法:
$file_url 是遠程的圖片地址,如上面數組的picture的路徑,$save_to是服務器上要保存的文件地址,如 $save_to = 'Uploads/caiji/123.jpg';
這樣通過$this->dlfile($file_url, $save_to)調用這個方法后即可保存圖片,這樣圖片的地址就能轉換成服務器上的相對地址或根目錄地址了。
以上是對QueryList V3的實例運用介紹,其實還有很多比較實用的技巧沒講,例如內容過濾,獲取內容亂碼如何解決等。如果有時間下次再講一下把采集數據處理,先采集列表頁面,再通過列表的鏈接采集到文章頁面,再把它保存到數據庫中的處理過程。