我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

虽然说这个querylistjquery是有一定的联系的。但是也是有一些很特殊的方法的,比如:texts()attrs()。这两个方法,和传统的jquery方法,是不一样的。比传统意义上的写法,多一个s字样,返回值也是个数组。

苏南大叔:如何理解 QueryList 中的特殊函数 texts() 和 attrs() - querylist函数
如何理解 QueryList 中的特殊函数 texts() 和 attrs()(图1-1)

本文的测试环境:querylist版本为4.0.3

Elements find($selector)

无论是texts()还是attrs(),都是配合find()使用的。关于find()方法,这个和jquery中的用法几乎是一样的。返回值为QL\Dom\Elements类型,具体用法查看Elements类型文档。

用法demo

$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());

运行结果

上述demo程序的运行结果如下:

all()方法会返回一个数组。
Array
(
    [0] => QueryList|基于phpQuery的无比强大的PHP采集工具
    [1] => QueryList|基于phpQuery的无比强大的PHP采集工具
    [2] => 介绍- QueryList指导文档
    [3] => QueryList一个基于phpQuery的无比强大的采集工具 - ThinkPHP框架
    [4] => PHP 用QueryList抓取网页内容 - wb145230 - 博客园
    [5] => thomasw/querylist · GitHub
    [6] => thinkPHP3.2中使用QueryList采集演示 - ThinkPHP框架
    [7] => JAE/QueryList - 码云
    [8] => QueryList采集器2.0版本,附QueryList入门教程 - ThinkPHP框架
)
Array
(
    [0] => //www.baidu.com/img/bd_logo1.png
    [1] => //www.baidu.com/img/baidu_jgylogo3.gif
    [2] =>
    [3] =>
    [4] =>
    [5] =>
    [6] =>
    [7] => http://i9.baidu.com/it/u=2964320798,1238330152&fm=85&s=BF8A7A23632258B4A854E4DB0300E0B1
)

总结

在文章的最后,苏南大叔要强调的是:在querylist的世界里面,并不是不存在text()attr()。只不过这个带s的函数,和大家的常规认识,可能更加有所差异。所以,才单独提出说明的。

多了一个字母s,所以也要稍稍变通一下。先find(),再texts()或者attrs(),最后使用all(),套路就是这样的。

更多苏南大叔编写的querylist原创经验文章,请点击:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   querylist