您现在的位置是:首页 > PHP > 【采集网页篇】,php有专门的类库 网站首页 PHP

【采集网页篇】,php有专门的类库

Tom2017-11-01 2774人围观
简介 暂无

这段时间一直在抓取网页,用了多了发现正则表达式也不是那么好写,动不动就写不出来了,但是用多了页找到了一些用些抓取的类库,比如phpquery,和querylist,用起来怎么说呢,想使用jquery操作一样简单

这里重点介绍使用querylist3.0,我的php版本是5.6,querylist4.0需要php版本7.0,那就没办法了

querylist:

  1. querylist官网下载两个文件(或者本文末尾,小主也会附上地址),phpquery.php 和querylist.php这两个类库,(啰嗦一点就是,querylist也是基于phpquery的抓取方面提升的类库,其实phpquery还可以做其他的功能,比如。。。。)
  2. 然后就是放在项目中,引用两个文件就可以了,然后在文件开头使用命名空间 use QL\QueryList;
  3. 接下来就是使用了,最主要的就是传入规则,
  4. 然后可以针对性的对每一条规则传入回调处理方法
具体方法:

  •     require JD_GEN_PATH.'extend/phpquery/phpQuery.php';

  •         require JD_GEN_PATH.'extend/phpquery/QueryList.php';

  •         $hj = QueryList::Query('http://www.baidu.com',
  •                 array(
  •                     "url"=>array('div a','href'),//绿色的内容表示:找到div下面的a标签的href的值

  •                     "book_name"=>array('div a','text'),//这里的蓝色表示可以是任意属性,比如href,html,src等

  •                     "author"=>array('.result-game-item .result-game-item-info p:contains("作者:")','text','',function($res){
  •         //回调中可以使用php的所有语法,比如针对多余的数据,去空格,替换字符等

  •                             $book_author = str_replace("作者:","",$res);
  •                             $book_author = trim($book_author);
  •                             return $book_author;
  •                     }),
  •                 ));
  •         $data = $hj->getData(function($x){
  •             return $x;//返回的结果是以多维数组的方式放回
  •         });

  •         _success($data);

下面放上两个类库的下载地址,I Am Address Click Me!

最近在做一个自己的小说阅读器,所以采集用的很多,放两张low图;仪式:纪念


打赏本站,你说多少就多少

文章评论