南京小程序开发,南京H5,南京公众号开发,南京网站建设,南京网站制作,南京网站设计,南京做网站,南京网站开发,南京网站建设公司,南京网站制作公司,南京网站设计公司
-->

电话:

400-885-7836

微信:

南京小程序开发,南京H5,南京公众号开发,南京网站建设,南京网站制作,南京网站设计,南京做网站,南京网站开发,南京网站建设公司,南京网站制作公司,南京网站设计公司

商务QQ:

923368187

南京小程序开发,南京H5,南京公众号开发,南京网站建设,南京网站制作,南京网站设计,南京做网站,南京网站开发,南京网站建设公司,南京网站制作公司,南京网站设计公司

联系我们

Slide
无需任何编程和设计经验,用户可在3分钟之内快速创建小程序,最快5分钟微信审核通过上线

操作步骤: 扫码登录 -> 创建店铺 -> 授权小程序 -> 选择适合的模板 -> 体验码体验 -> 发布小程序

当前位置:首页 > 易企达 > Laravel 使用 QueryList 轻松采集网页

所有分类

Laravel 使用 QueryList 轻松采集网页

我们有时需要抓取一个网页的内容,但只需要特定部分的信息,通常会用正则来解决,这当然没有问题。正则是一个通用解决方案,但特定情况下,往往有更简单快 捷的方法。
源文档:https://doc.querylist.cc/
QueryList是一个基于phpQuery的PHP通用列表采集类,得益于phpQuery,让使用QueryList几乎没有任何学习成本,只要会CSS3选择器就可以轻松使用QueryList了,它让PHP做采集像jQuery选择元素一样简单。

安装#

QueryList运行需要PHP5.3+,使用 Composer 安装:
composer require jaeger/querylist

用例#

先上例子,再来解释。以采集PHPHub教程区文章列表为例:
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Http\Requests;

class IndexController extends Controller
{
public function list()
{
//待采集的目标页面,PHPHub教程区
$page = 'https://laravel-china.org/categories/6';
//采集规则
$rules = array(
//文章标题
'title' => ['.media-heading a','text'],
//文章链接
'link' => ['.media-heading a','href'],
//文章作者名
'author' => ['.img-thumbnail','alt']
);
//列表选择器
$rang = '.topic-list>li';
//采集
$data = \QL\QueryList::Query($page,$rules,$rang)->data;
//查看采集结果
print_r($data);
}
}

采集结果:
Array
(
[0] => Array
(
[title] => 好友动态的实现原理
[link] => https://laravel-china.org/topics/2750
[author] => luo975974740
)

[1] => Array
(
[title] => 打造完美的 Ubuntu16.04 开发环境【持续更新】
[link] => https://laravel-china.org/topics/2723
[author] => liuwantao
)

//省略........

[19] => Array
(
[title] => [Laravel 5.3 新功能] 10. 全文搜索方案 Laravel Scout 介绍
[link] => https://laravel-china.org/topics/2673
[author] => monkey
)
)

接口说明#

使用QueyList只需要编写规则库,然后把规则库传给QueryList的静态方法QueryQueryList就会自动按照规则库把内容全部采集回来了,而规则库是用jQuery选择器来编写的,所以使用QueryList的整个过程非常简单!
//接口解释
QueryList::Query(采集的目标页面,采集规则[,区域选择器][,输出编码][,输入编码][,是否移除头部])
//采集规则
$rules = array(
'规则名' => array('jQuery选择器','要采集的属性'[,"标签过滤列表"][,"回调函数"]),
'规则名2' => array('jQuery选择器','要采集的属性'[,"标签过滤列表"][,"回调函数"]),
..........
[,"callback"=>"全局回调函数"]
);
//注:方括号括起来的参数可选

QueryList扩展#

  • Request 网络操作扩展可以实现如携带cookie、伪造来路等任意复杂的网络请求。
  • Login 模拟登陆扩展可以实现模拟登陆然后采集。
  • Multi 多线程插件多线程(多进程)采集扩展。
  • DImage 图片下载扩展DImage扩展,可实现简单的图片下载需求。

扩展通过QueryList::run 方法运行,同时你可以花几分钟就能创建一个自己的QueryList扩展,这里就不深入讲解了。


QueryList GIT@OSC地址:http://git.oschina.net/jae/QueryList

QueryList GitHub地址:https://github.com/jae-jae/QueryList

QueryList官网:http://querylist.cc/

QueryList指导文档:http://doc.querylist.cc/

易企达10年行业沉淀!专业小程序、公众号H5、APP定制开发
拨打电话立享优惠

400-885-7836

点击获取报价

本文原地址:https://www.eqiday.cn/186.html
郑重声明内容版权声明:除非注明,否则皆为本站原创文章。如有侵权联系进行删除!

无需任何编程和设计经验,用户可在10分钟之内快速创建小程序,所有功能免费!

操作步骤: 注册 -> 登录 -> 创建店铺 -> 授权小程序 -> 上传代码 -> 生成体验码体验 -> 发布小程序

免费制作小程序