加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

QueryList一个简单、灵活、强大的通用php采集类

发布时间:2020-12-13 01:59:34 所属栏目:PHP教程 来源:网络整理
导读:《QueryList一个简单、灵活、强大的通用php采集类》要点: 本文介绍了QueryList一个简单、灵活、强大的通用php采集类,希望对您有用。如果有疑问,可以联系我们。 QueryList是一个基于phpQuery的PHP通用列表采集类,是一个简单、 灵活、强大的采集工具,采集任

《QueryList一个简单、灵活、强大的通用php采集类》要点:
本文介绍了QueryList一个简单、灵活、强大的通用php采集类,希望对您有用。如果有疑问,可以联系我们。

QueryList是一个基于phpQuery的PHP通用列表采集类,是一个简单、 灵活、强大的采集工具,采集任何复杂的页面基本上就一句话就能搞定了.

我们有时需要抓取一个网页的内容,但只需要特定部分的信息,通常会用正则来解决,这当然没有问题.正则是一个通用解决方案,但特定情况下,往往有更简单快 捷的办法.比如你想查询一个编程方面的问题,当然可以使用Google,但stackoverflow 作为一个专业的编程问答社区,会提供给你更多,更靠谱的答案.

对于html页面,不应该使用正则的原因主要有3个

1、编写条件表达式比较麻烦

尤其对于新手,看到一堆”不知所云”的字符评凑在一起,有种脑袋都要炸了的感觉.如果要分离的对象没有太明显的特征,正则写起来更是麻烦.

2、效率不高

对于php来说,正则应该是没有方法的方法,能通过字符串函数解决的,就不要劳烦正则了.用正则去处理一个30多k的文件,效率不敢保证.

3、有phpQuery

如果你使用过jQuery,想获取某个特定元素应该是轻而易举的事情,phpQuery让这成为了可能

phpQuery

QueryList一个简单、灵活、强大的通用php采集类

在介绍QueryList之前,有必要先来介绍一下phpQuery.

phpQuery是一个用php实现的类似jQuery的开源项目,可以在服务器端以jQuery的语法形式解析网页元素.

基本上jQuery的选择器都可以用在phpQuery上,phpQuery很强大可以对DOM进行任何复杂的操作,而接下来要介绍的QueryList则相当于phpQuery的子集,发挥它采集方面的强大功能.

QueryList

QueryList一个简单、灵活、强大的通用php采集类

QueryList是一个基于phpQuery的PHP通用列表采集类,得益于phpQuery,让使用QueryList几乎没有任何学习成本,只要会CSS3选择器就可以轻松使用QueryList了,它让PHP做采集像jQuery选择元素一样简单.

QueryList的几个特点:

1.只有一个核心的API,静态办法Query

2.用jQuery选择器来选择页面元素

3.自带过滤功能,可过滤掉无用的内容

4.支持无限层级嵌套采集

5.采集结果直接以采集规则以列表的形式有序的返回

6.支持扩展

获取QueryList插件

QueryList扩展需要选择性的单独安装,以下是几个插件是默认的演示插件

  1. Request网络操作扩展:

  2. Multi多线程扩展:

  3. Login模拟登陆扩展


demo

<?php

require 'QueryList/vendor/autoload.php';

use QLQueryList;

$html = <<<STR

<div id="one">

<div class="two">

<a href="http://querylist.cc">QueryList官网</a>

<img src="http://querylist.com/1.jpg" alt="这是图片">

<img src="http://querylist.com/2.jpg" alt="这是图片2">

</div>

<span>其它的<b>一些</b>文本</span>

</div>

STR;

$rules = array(

//采集id为one这个元素里面的纯文本内容

'text' => array('#one','text'),

//采集class为two下面的超链接的链接

'link' => array('.two>a','href'),

//采集class为two下面的第二张图片的链接

'img' => array('.two>img:eq(1)','src'),

//采集span标签中的HTML内容

'other' => array('span','html')

);

$data = QueryList::Query($html,$rules)->data;

print_r($data);

?>


更多API说明,请查看官方API文档.(https://querylist.cc/)

如果觉得本文章对您有所赞助,请为小编点赞.如有疑问请留言吧.

编程之家培训学院每天发布《QueryList一个简单、灵活、强大的通用php采集类》等实战技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培养人才。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读