1、本次使用QueryList強大的採集框架進行抓去數據
2、採集國家地理中文網:http://m.nationalgeographic.com.cn/,找到一個H5頁面
3、分析dom結構
接下來我們開始使用QueryList。
本人採用wampserver+laravel5.1 進行抓取,首先引入QueryList類,不得不說composer是個很不錯的東西,如果對composer不懂得同學可以去網上找些資料進行閱讀
推薦:http://www.phpcomposer.com/。本次需要在本地安裝composer纔可以哦
1、composer require jaeger/querylist在項目根目錄執行。也可以手動下載放到指定目錄,其他的方式不多說了大家可以看下官網
2、直接上代碼,本次抓取例子:http://m.nationalgeographic.com.cn/國家地理中文網的H5頁面。
3、在控制器引入use QL\QueryList;
$url = 'http://m.nationalgeographic.com.cn/';定義一個url本次採集的地址
設置路由規則
$rules = array(
//採集class爲two下面的超鏈接的鏈接
'link' => array('#ajaxBox>.ajax_list dd a)','href'),//獲取網站url
'covPic'=>array('#ajaxBox>.ajax_list dd a img','src'),
'title'=>array('#ajaxBox>.ajax_list dd a img','alt'),
'desc'=>array('#ajaxBox>.ajax_list dl .ajax_dd_text','text'),
);
網站列表結構圖:
通過規則,我們進行抓取列表 //創建數組
$data = QueryList::Query($urls,$rules)->getData(function($item){
return $item;
});
$data就是我們要抓取當前的url列表,
類似這種,我們也可以通過當前抓去列表的url,去詳情頁獲取當前的列表所有信息