浅析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 相关文章推荐
最小化数据传输――在客户端存储数据
Oct 09 PHP
模仿OSO的论坛(三)
Oct 09 PHP
迅速确定php多维数组的深度的方法
Jan 07 PHP
php去除字符串换行符示例分享
Feb 13 PHP
PHP 导出Excel示例分享
Aug 18 PHP
PHP图片自动裁切应付不同尺寸的显示
Oct 16 PHP
PHP使用内置dir类实现目录遍历删除
Mar 31 PHP
一波PHP中cURL库的常见用法代码示例
May 06 PHP
php curl中gzip的压缩性能测试实例分析
Nov 08 PHP
详解PHP字符串替换str_replace()函数四种用法
Oct 13 PHP
laravel实现批量更新多条记录的方法示例
Oct 22 PHP
PHP常用日期加减计算方法实例小结
Jul 31 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 面向对象程序设计(oop)学习笔记 (五) - PHP 命名空间
2014/06/12 PHP
php中ob_get_length缓冲与获取缓冲长度实例
2014/11/20 PHP
使用PHP接受文件并获得其后缀名的方法
2015/08/05 PHP
PHP中功能强大却很少使用的函数实例小结
2016/11/10 PHP
基于jQuery的Spin Button自定义文本框数值自增或自减
2010/07/17 Javascript
NodeJS与Mysql的交互示例代码
2013/08/18 NodeJs
js判断客户端是iOS还是Android等移动终端的方法
2013/12/11 Javascript
你可能不知道的JavaScript的new Function()方法
2014/04/17 Javascript
javascript闭包传参和事件的循环绑定示例探讨
2014/04/17 Javascript
jquery实现html页面 div 假分页有原理有代码
2014/09/06 Javascript
javascript中checkbox使用方法简单实例演示
2015/11/17 Javascript
javascript创建对象的几种模式介绍
2016/05/06 Javascript
JQuery中attr属性和jQuery.data()学习笔记【必看】
2016/05/18 Javascript
node.js中路由,中间件,ge请求和post请求的参数详解
2017/12/26 Javascript
Vue和React组件之间的传值方式详解
2019/01/31 Javascript
微信小程序搜索功能(附:小程序前端+PHP后端)
2019/02/28 Javascript
Vue +WebSocket + WaveSurferJS 实现H5聊天对话交互的实例
2020/11/18 Vue.js
Python中的map()函数和reduce()函数的用法
2015/04/27 Python
python在windows下创建隐藏窗口子进程的方法
2015/06/04 Python
python实现壁纸批量下载代码实例
2018/01/25 Python
python实现人脸识别经典算法(一) 特征脸法
2018/03/13 Python
python代码过长的换行方法
2018/07/19 Python
Python设计模式之代理模式实例详解
2019/01/19 Python
Django框架验证码用法实例分析
2019/05/10 Python
python设置环境变量的原因和方法
2019/06/24 Python
Django Channels 实现点对点实时聊天和消息推送功能
2019/07/17 Python
Django ORM多对多查询方法(自定义第三张表&amp;ManyToManyField)
2019/08/09 Python
Python基本语法之运算符功能与用法详解
2019/10/22 Python
keras获得某一层或者某层权重的输出实例
2020/01/24 Python
Python设计密码强度校验程序
2020/07/30 Python
美国著名童装品牌:OshKosh B’gosh
2016/08/05 全球购物
英国泽西岛植物:Jersey Plants Direct
2019/08/07 全球购物
辞职信标准格式
2015/02/27 职场文书
大学三好学生主要事迹范文
2015/11/03 职场文书
多属性、多分类MySQL模式设计
2021/04/05 MySQL
JavaWeb 入门篇:创建Web项目,Idea配置tomcat
2021/07/16 Java/Android