使用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'),      
    );

网站列表结构图:

使用php laravel进行数据数据采集_第1张图片

通过规则,我们进行抓取列表  //创建数组
        $data = QueryList::Query($urls,$rules)->getData(function($item){
          return $item;
        });

$data就是我们要抓取当前的url列表,

 
  
类似这种,我们也可以通过当前抓去列表的url,去详情页获取当前的列表所有信息

你可能感兴趣的:(php,laravel)