400-800-9385
网站建设资讯详细

php采集器QueryList V3的实例运用介绍

发表日期:2022-11-15 15:40:12   作者来源:陈应信   浏览:257   标签:网站采集    
要实现php插件QueryList V3采集器的功能,首先就是要下载phpQuery.php和QueryList.php,我们使用的是tp3.2,所以把这两个文件放到如下图所示的位置:

QueryList文件
然后在控制器上,使用vendor('Caiji.phpQuery');vendor('Caiji.QueryList');引入这两个文件,然后使用命名空间use QL\QueryList;引入QueryList类,如下图所示:

PHP类

然后使用QueryList::方法名,即可调用QueryList类的方法,如下图所示,我们来采集一个网址:

文章
 
$html是我们要采集的一个网址,我们打开这个页面,如下图:
 

HTML

然后查看这个页面的源代码,如下所示:
 
Array数组

上面的源代码划红圈的位置,我们需要采集的是网页的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;执行采集程序,就能获取到如下数组:

PHP代码
....
这样就可以对数组进行处理了,首先我们注意到这个图片的路径是远程的绝对地址,如果直接存到数据库表中,随时可能因为某种原因打开,所以就需要把图片保存到服务器上,所以需要运用到以下方法:

获取远程图片

$file_url 是远程的图片地址,如上面数组的picture的路径,$save_to是服务器上要保存的文件地址,如 $save_to = 'Uploads/caiji/123.jpg';
这样通过$this->dlfile($file_url, $save_to)调用这个方法后即可保存图片,这样图片的地址就能转换成服务器上的相对地址或根目录地址了。
以上是对QueryList V3的实例运用介绍,其实还有很多比较实用的技巧没讲,例如内容过滤,获取内容乱码如何解决等。如果有时间下次再讲一下把采集数据处理,先采集列表页面,再通过列表的链接采集到文章页面,再把它保存到数据库中的处理过程。
如没特殊注明,文章均为方维网络原创,转载请注明来自https://www.szfangwei.cn/news/6581.html