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

本篇开始,苏南大叔讲述一下一款国人出品的php库,叫做querylist,可以用于网络数据的抓取。这款querylist,类似于python下的scrapy。当然,在前面的文章中,苏南大叔对scrapy抓取有所介绍。如果您有兴趣,可以通过文末链接,了解更多的相关信息。

苏南大叔:php 数据抓取类库 QueryList ,如何安装使用? - querylist
php 数据抓取类库 QueryList ,如何安装使用?(图5-1)

另外,本款querylist是基于开源库phpquery的。如果您有用过phpquery,那么您会在接下来的学习中,会看到一些类似的影子。如果,您也没使用过phpquery的话,那么还是可以对比jquery的,思路都比较类似。好了,就介绍这么多,如果您感兴趣,欢迎查看接下来的querylist系列文章。

苏南大叔的实验过程中的composer的版本是:1.6.5php版本为7.2.1

官方网站及安装要求

querylist是国人作品,其官方网站是:

querylist的要求php版本至少为7.0,可以通过下面的命令查看本地php版本号:

php -v

苏南大叔:php 数据抓取类库 QueryList ,如何安装使用? - composer-v
php 数据抓取类库 QueryList ,如何安装使用?(图5-2)

安装步骤

第一步,安装composer

安装composer这事,不做过多描述。querylist的使用,理论上来说,是和composer联系比较紧密的。composer的使用相关文章,请参见文末链接。如果您安装过了composer,可以跳过本步骤。

下面描述的是:mac下使用命令行语句,安装composer的范例:

curl -o composer.phar 'https://getcomposer.org/composer.phar'
mv composer.phar /usr/local/bin/composer 
chmod 777 /usr/local/bin/composer

相关链接:

第二步,设置全局加速composerrepo

这一步并不是必须的,如果在安装querylist的时候,一直没有反应,可以执行这条语句。语句的目的就是给composer换一个快速的国内源,这个就类似于node下面的cnpm

composer config -g repo.packagist composer https://packagist.phpcomposer.com

第三步,安装querylist

在空白文件夹下面,先初始化composer项目。

composer init

然后使用composer就可以安装jaeger/querylist

composer require jaeger/querylist

苏南大叔:php 数据抓取类库 QueryList ,如何安装使用? - composer-require-querylist
php 数据抓取类库 QueryList ,如何安装使用?(图5-3)

安装成功,查看版本号

截至到发稿,使用下面的命令可以查看到最新版的querylist的版本号为4.0.3

composer show -i jaeger/querylist

苏南大叔:php 数据抓取类库 QueryList ,如何安装使用? - querylist-v
php 数据抓取类库 QueryList ,如何安装使用?(图5-4)

入门范例demo

下面的语句,是官方给出了的最简单配置。这里,由于篇幅限制,苏南大叔也不做过多的解释说明。

require './vendor/autoload.php';
use QL\QueryList;
$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::html($html)
        ->rules($rules)
        ->query()
        ->getData();
print_r($data->all());

里面的use是重点中的重点。新手经常会坑在这里。而autoload.php,这个是composer工程的标配。剩下的就是querylist的相关函数了,在后面的文字中,苏南大叔,会有所详细叙述的。敬请期待。

require './vendor/autoload.php';
use QL\QueryList;

苏南大叔:php 数据抓取类库 QueryList ,如何安装使用? - demo
php 数据抓取类库 QueryList ,如何安装使用?(图5-5)

相关链接

总结

本文中,苏南大叔介绍的querylist,和scrapy是比较类似的。但是querylist是基于php的,这就对于php的忠实用户们是比较有吸引力的。

不过,苏南大叔这边还是给大家一个建议,就是多去尝试一下python。目前的环境下,看起来python系列还是非常有前途的。而且从抓取这件事情上来说,scrapy对于querylist,还是有优势的。好了,就讲这么多。请大家继续关注,苏南大叔的后续文字,感谢您的阅读。

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

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

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

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