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

苏南大叔在本文中,将要介绍的是:QueryList区域选择器,即range()函数。通俗的理解呢,就是说在使用文本匹配规则之前,先给要匹配的数据区域做个划分。这样的话,就可以提高文本规则的匹配精准度。

如何使用 QueryList 的区域选择器 range() 函数 - 区域选择器
如何使用 QueryList 的区域选择器 range() 函数(图1-1)

基本说明

区域选择器或者叫做切片选择器,指先按照该规则对HTML内容进行切片 ,然后再分别再在这些切片里面进行相关的选择。
当采集列表的时候,建议设置这个参数。

range()rules()是息息相关的,使用range()的话,就是利用range()先选出html的某些部分,然后再对这些切片,应用rules()规则。作用是可以简化rules里面的规则。还可以循环处理rule()规则。

对比例子demo

苏南大叔给出下面两个对比例范例。

第一种写法:没有用到[区域选择器]。

$ql = QueryList::get('http://www.baidu.com/s?wd=QueryList')->rules([
    'title'=>array('h3','text'),
    'link'=>array('h3>a','href')
]);

第二种写法:用选择器'h3'对内容切片,然后分别在这些切片中执行采集规则。

$ql = QueryList::get('http://www.baidu.com/s?wd=QueryList')->rules([
    // 获取当前切片的整个text内容
    'title'=>array('','text'),
    // 获取当前切片下的a标签链接
    'link'=>array('a','href')
])->range('h3');

总结

整体上来说,使用range()的方法,和使用jquery的dom选择器,是非常类似的体验,推荐使用第二种range()方式写代码。不使用range()的话,有可能会采集到错误的数据。大家可以在日常使用中,自行体会相关的区别。

更多苏南大叔的querylist文章,敬请期待。

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

本站的忠实读者小伙伴,正在阅读下面这些文章:

欢迎转载传播本篇原创文章,转载请保留链接及作者信息。
欢迎指正文字或逻辑错误,将会择优在文末列出您的信息。
本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
未经许可,规模化镜像抄袭本站内容的行为,将会根据有关法律法规进行维权。
程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。

苏南大叔需要你的支持

感谢您的打赏,让我更有动力,将更多精彩教程文章,呈现给大家!谢谢!