为'艺术'而生的'小妾'工具--QueryList

烨竹

首先解释标题:

艺术==laravel(这里不能用"三"等于,不然有人说我语法错误)
小妾==中国有句老话:妻不如妾,妾不如偷,偷不如偷不到;妻就是原配(自己写的源代码),妾就是QueryList,偷当然就是小偷程序,偷不到就是你花钱别人也不会把小偷程序的源码给你;再者说了,'偷'在中国古代艺术的叫法是什么--“qie”;

简介:

Querylist其实就是一款网页采集的第三方工具类;
特点:简单,强大,现代;
缺点:再怎么优秀也只是一款第三方工具,感觉人气不高(估计爬取网页都去用py了)。

总结

具体用法做个总结就是:确定你需要爬取得内容,配置爬取规则,执行爬取;
官方文档做个总结:安装,简单爬取,Dom爬取,插件相关,示例

这里引用官方文档对上面的总结进行说明:

//简单爬取

    
    其它的一些文本
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::html($html) ->rules($rules) ->query() ->getData(); print_r($data->all());

对querylist简单理解

下载和引入querylist扩展

composer require jaeger/querylist
require 'vendor/autoload.php';
use QLQueryList;

获取采集目标(大多数情况为页面的html代码)

把html源码添加进querylist类中--html($html)
从querylist类中拉出html代码(这个函数只会拉去所有的html代码)
确定需要采集的类容--rules(array $rules)
对采集的数据进行一致性处理--range($selector),便于数据的应用
根据需要移除头部处理--removeHead()
执行采集规则rules--query()并且可以修改采集到的数据,无限极分类
获取到采集数据--getData()
QueryList单一实例--getInstance()
多QueryList共存的场景-- new QueryList()
释放资源,销毁内存占用--destruct()

根据Dom获取采集目标->fimd()

有一点很遗憾:他的DOM(特殊API,也可以算是对象)只是做了简单介绍,如果文档能在这方面进行完善,估计这一款第三方扩展能更上一层楼;

\$ql = QueryList::get('http://www.baidu.com/s?wd=QueryList');
//获取所有h3标签下的a标签的文本
\$data = \$ql->find('h3>a')->texts();
print_r(\$data->all());
//获取页面中所有图片地址
\$data = \$ql->find('img')->attrs('src');
print_r($data->all());

强大的插件扩展:

url处理插件--get($url,$args = null,$otherArgs = [])
post表单提交--post($url,$args = null,$otherArgs = [])
编码转换--encoding(string $outputEncoding,string $inputEncoding = null)
转换URL相对路径到绝对路径--absoluteUrl($baseUrl): 转换页面所有Url为绝对路径,return QueryList
--absoluteUrlHelper($baseUrl,$relativeUrl): 单链接转换帮助函数,return string
Curl多线程采集--CurlMulti 插件
JavaScript动态渲染的页面--PhantomJS插件
搜索引擎插件--百度谷歌

插件相关的API:
设置采集结果数据(此方法紧提供给插件使用)--setData(Collection $data)
生成一个新的插件--bind(string $name,Closure $provide)
使用插件-- use($plugins,…$opt)
插件全局配置--Config use($plugins,…$opt)

你可能感兴趣的:(为'艺术'而生的'小妾'工具--QueryList)