thinkphp5 where(【框架】Thinkphp5与QueryList,实现采集(爬虫)页面功能)

wufei123 发布于 2023-11-02 阅读(725)

php教程视频教程全集百度云

文章转载:博客链接:https://www.cnblogs.com/jcydd/p/7299672.html作者:坚持一点点商务合作:请加微信(QQ):2230304070PHPphp自学中心网址:http://www.startphp.cn

教程分享

这里分享一套laravel5.8从基础到实战【教程+源码+文档】,视频教程共93节,每周更新两章,以下提供百度网盘链接+提取码LPHParavel5.8从入门到实战视频教程+源码【93节】链接:https://pan.baidu.com/s/1iQrNv_4-SgDDjF1O7NovHQ

提取码:0epk

文章正文

QueryList 是PHP什么QueryList是一套用于内容采集的PHP工具,它使用更加现代化的开发思想,语法简洁、优雅,可扩展性强相比传统的使用晦涩的正则表达式来做采集,QueryList使用了更加强大而优雅的CSS选择器PHP来做采集,大大降低了PHP做采集的门槛,同时也让采集代码易读易维护,让你从此告别晦涩难懂且不易维护的正则表达式😀。

QueryList 提供的一整套内容采集解决方案DOM内容选择:CSS选择器HTTPPHP客户端:GuzzleHTTP内容过滤:CSS选择器解决乱码:内置多套乱码解决方案额外功能:丰富的扩展插件前提项目主要用thinkphp5框架,主要会用到`QueryList.php`和`phpQuerPHPy.php`这两个文件。

我们可以切换到项目目录,extend里新建QL,然后在QL目录执行composer命令安装QueryList:composer require jaeger/querylistPHP然后在需要使用的控制器中加入 use QL\QueryList; 接下来就在控制器里编写代码了,以下是一个实例

//需要采集的目标页面$page = http://cms.querylist.cc/nePHPws/566.html;//采集规则$reg = array(//采集文章标题title => array(h1

,text),//采集文章发布日期,这里用到了QueryList的过滤功能,过滤掉spaPHPn标签和a标签date => array(.pt_info,text,-span -a,function($content)

{//用回调函数进一步过滤出日期       $arr = explode(PHP,$content);return $arr[0];   }),//采集文章正文内容,利用过滤功能去掉文章中的超链接,但保留超链接的文字,并去掉版权、JS代码等无用信息

content => arrayPHP(.post_content,html,a -.content_copyright -script,function($content){//利用回调函数下载文章中的图片并替换图片路径为本地路径

//使PHP用本例请确保当前目录下有image文件夹,并有写入权限//由于QueryList是基于phpQuery的,所以可以随时随地使用phpQuery,当然在这里也可以使用正则或者其它方式达到同样的目的   PHP    $doc=\phpQuery::newDocumentHTML($content);

$imgs = pq($doc)->find(img);foreach ($imgs as $img) { PHP          $src = http://cms.querylist.cc

.pq($img)->attr(src);           $localSrc = md5($src)..jpg; PHP          $stream = file_get_contents($src);

file_put_contents($localSrc,$stream);           pq($img)PHP->attr(src,$localSrc);       }return

$doc->htmlOuter();   }));$rang = .content;$ql = QueryList::QueryPHP($page,$reg,$rang);$data = $ql->getData();

//打印结果print_r($data);注意:在使用phpQuery类时需要在前面加上\,因为phpQuery.pPHPhp中没有使用命名空间,因为使用命名空间后,QueryList.php无法使用phpQuery类

以上是一个简单的例子,已经实现了采集网页数据,更多详细语法与实例可以移步到官网文档,细细查看QueryLPHPist参考文档:https://doc.querylist.cc/以上是文章全部内容,有学习与经验交流的可以加。

小编为好友。有技术问题可以一起探讨与交流,如果你是PHP的,小编也可以拉你进微信技术群,PHP交流与学习!15元领取Laravel5.8视频教程微信公众号:php自学中心长按二维码加好友,备注码农

学习  |  交流  |  分享  |  文章

亲爱的读者们,感谢您花时间阅读本文。如果您对本文有任PHP何疑问或建议,请随时联系我。我非常乐意与您交流。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。