浅析php如何实现爬取数据原理


Posted in PHP onSeptember 27, 2018

官方网站站点:简单、 灵活、强大的PHP采集工具,让采集更简单一点。

简介

QueryList使用jQuery选择器来做采集,让你告别复杂的正则表达式;QueryList具有jQuery一样的DOM操作能力、Http网络操作能力、乱码解决能力、内容过滤能力以及可扩展能力;可以轻松实现诸如:模拟登陆、伪造浏览器、HTTP代理等意复杂的网络请求;拥有丰富的插件,支持多线程采集以及使用PhantomJS采集JavaScript动态渲染的页面。

安装

通过Composer安装:

composer require jaeger/querylist

使用教程:

直接上代码:

<?php
include './vendor/autoload.php';
// 使用composer安装后引入目录
use QL\QueryList;
// 使用插件
 
$html = file_get_contents('https://www.biqudu.com/14_14778/');
// 手动获取页面
$data = QueryList::html($html);
// 得到页面内容
$data = QueryList::setHtml('https://www.biqudu.com/14_14778/');
// 等同于上面的html()
$data->rules([
  // 采集所有a标签的href属性
  'link' => ['a','href'],
  // 采集所有a标签的文本内容
  'text' => ['a','text']
  ]);
// 此处$data = 上面已经获取到网页内容之后的对象
// 设置采集规则 替代了传统正则
$data->query();
// 此处$data = 上面已经获取到网页内容之后的对象 
// query 执行操作
$data->getData();
// 此处$data = 上面已经获取到网页内容之后的对象
// 得到数据结果
$data->all();
// 此处$data = 上面已经获取到网页内容之后的对象
// 将数据转换成二维数组
print_r($data->all());
// 打印结果

上面的基本使用方法就是这样了 这样我们已经可以抓取到一定的数据了

PHP 相关文章推荐
一个php作的文本留言本的例子(六)
Oct 09 PHP
PHP远程连接MYSQL数据库非常慢的解决方法
Jul 05 PHP
php array_pop()数组函数将数组最后一个单元弹出(出栈)
Jul 12 PHP
php unset全局变量运用问题的深入解析
Jun 17 PHP
php防注入及开发安全详细解析
Aug 09 PHP
php跨域cookie共享使用方法
Feb 20 PHP
ThinkPHP调用common/common.php函数提示错误function undefined的解决方法
Aug 25 PHP
利用PHP生成CSV文件简单示例
Dec 21 PHP
php + nginx项目中的权限详解
May 23 PHP
PHP 中魔术常量的实例详解
Oct 26 PHP
PHP实现微信申请退款功能
Oct 01 PHP
Laravel获取当前请求的控制器和方法以及中间件的例子
Oct 11 PHP
Laravel源码解析之路由的使用和示例详解
Sep 27 #PHP
php实现有序数组旋转后寻找最小值方法
Sep 27 #PHP
PHP实现SMTP邮件的发送实例
Sep 27 #PHP
ThinkPHP like模糊查询,like多匹配查询,between查询,in查询,一般查询书写方法
Sep 26 #PHP
thinkPHP利用ajax异步上传图片并显示、删除的示例
Sep 26 #PHP
多个Laravel项目如何共用migrations详解
Sep 25 #PHP
php中上传文件的的解决方案
Sep 25 #PHP
You might like
在PHP中使用灵巧的体系结构
2006/10/09 PHP
PHP 存储文本换行实现方法
2010/01/05 PHP
php中用于检测一个地理IP地址是否可用的代码
2012/02/19 PHP
PHP利用APC模块实现大文件上传进度条的方法
2015/10/29 PHP
php自动载入类用法实例分析
2016/06/24 PHP
CentOS 7.2 下编译安装PHP7.0.10+MySQL5.7.14+Nginx1.10.1的方法详解(mini版本)
2016/09/01 PHP
PHP实现生成带背景的图形验证码功能
2016/10/03 PHP
PHP+JQUERY操作JSON实例
2017/03/23 PHP
PHP实现的mysql操作类【MySQL与MySQLi方式】
2017/10/07 PHP
PHP Swoole异步MySQL客户端实现方法示例
2019/10/24 PHP
offsetParent 算法分析
2010/04/05 Javascript
JS操作JSON要领详细总结
2013/08/25 Javascript
node.js中的fs.fchmodSync方法使用说明
2014/12/16 Javascript
探析浏览器执行JavaScript脚本加载与代码执行顺序
2016/01/12 Javascript
jQuery动画效果图片轮播特效
2016/01/12 Javascript
js简单获取表单中单选按钮值的方法
2016/08/23 Javascript
AngularJS入门示例之Hello World详解
2017/01/04 Javascript
JavaScript设计模式之调停者模式实例详解
2018/02/03 Javascript
JavaScript实现的反序列化json字符串操作示例
2018/07/18 Javascript
微信小程序实现消息框弹出动画
2020/04/18 Javascript
p5.js临摹动态图形的方法
2019/10/23 Javascript
详解elementUI中input框无法输入的问题
2020/04/27 Javascript
在Python中处理时间之clock()方法的使用
2015/05/22 Python
Python多层嵌套list的递归处理方法(推荐)
2016/06/08 Python
python中Matplotlib实现绘制3D图的示例代码
2017/09/04 Python
详解python函数传参是传值还是传引用
2018/01/16 Python
python如何实现数据的线性拟合
2019/07/19 Python
Python如何省略括号方法详解
2020/03/21 Python
Matplotlib自定义坐标轴刻度的实现示例
2020/06/18 Python
香港万宁官方海外旗舰店:香港健与美连锁店
2018/09/27 全球购物
酒吧副总经理岗位职责
2013/12/10 职场文书
会计专业毕业生求职信
2014/07/04 职场文书
2015年乡镇统计工作总结
2015/04/22 职场文书
2016春季校长开学典礼致辞
2015/11/26 职场文书
SQL Server2019安装的详细步骤实战记录(亲测可用)
2022/06/10 SQL Server
解决spring.thymeleaf.cache=false不起作用的问题
2022/06/10 Java/Android