laravel 集成采集_Laravel 使用 QueryList 轻松采集网页

 2023-09-13 阅读 27 评论 0

摘要:说明我们有时需要抓取一个网页的内容,但只需要特定部分的信息,通常会用正则来解决,这当然没有问题。正则是一个通用解决方案,但特定情况下,往往有更简单快 捷的方法。phpQuery的PHP通用列表采集类,得益于phpQuery,让使用QueryList几

说明

我们有时需要抓取一个网页的内容,但只需要特定部分的信息,通常会用正则来解决,这当然没有问题。正则是一个通用解决方案,但特定情况下,往往有更简单快 捷的方法。

phpQuery的PHP通用列表采集类,得益于phpQuery,让使用QueryList几乎没有任何学习成本,只要会CSS3选择器就可以轻松使用QueryList了,它让PHP做采集像jQuery选择元素一样简单。

php框架laravel、安装

QueryList运行需要PHP5.3+,使用 Composer 安装:

composer require jaeger/querylist

用例

支持laravel的前端框架,先上例子,再来解释。以采集PHPHub教程区文章列表为例:

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']

);

//列表选择器

laravel api,$rang = '.topic-list>li';

//采集

$data = \QL\QueryList::Query($page,$rules,$rang)->data;

//查看采集结果

print_r($data);

}

}

采集结果:

Array

(

[0] => Array

(

[title] => 好友动态的实现原理

[link] => https://learnku.com/laravel/t/2750

[author] => luo975974740

)

[1] => Array

(

[title] => 打造完美的 Ubuntu16.04 开发环境【持续更新】

[link] => https://learnku.com/laravel/t/2723

[author] => liuwantao

)

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

[19] => Array

(

[title] => [Laravel 5.3 新功能] 10. 全文搜索方案 Laravel Scout 介绍

[link] => https://learnku.com/laravel/t/2673

[author] => monkey

)

)

接口说明

使用QueyList只需要编写规则库,然后把规则库传给QueryList的静态方法Query,QueryList就会自动按照规则库把内容全部采集回来了,而规则库是用jQuery选择器来编写的,所以使用QueryList的整个过程非常简单!

//接口解释

QueryList::Query(采集的目标页面,采集规则[,区域选择器][,输出编码][,输入编码][,是否移除头部])

//采集规则

$rules = array(

'规则名' => array('jQuery选择器','要采集的属性'[,"标签过滤列表"][,"回调函数"]),

'规则名2' => array('jQuery选择器','要采集的属性'[,"标签过滤列表"][,"回调函数"]),

..........

[,"callback"=>"全局回调函数"]

);

//注:方括号括起来的参数可选

QueryList扩展

Request 网络操作扩展

可以实现如携带cookie、伪造来路等任意复杂的网络请求。

Login 模拟登陆扩展

可以实现模拟登陆然后采集。

Multi 多线程插件

多线程(多进程)采集扩展。

DImage 图片下载扩展

DImage扩展,可实现简单的图片下载需求。

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

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/4/49782.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息