使用php laravel进行数据数据采集
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,去详情页获取当前的列表所有信息