浅析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脚本的10个技巧(2)
Oct 09 PHP
php中的时间显示
Jan 18 PHP
js下函数般调用正则的方法附代码
Jun 22 PHP
PHP 加密解密内部算法
Apr 22 PHP
PHP无敌近乎加密方式!
Jul 17 PHP
自己写的php curl库实现整站克隆功能
Feb 12 PHP
php对数组内元素进行随机调换的方法
May 12 PHP
PHP MYSQL实现登陆和模糊查询两大功能
Feb 05 PHP
CI操作cookie的方法分析(基于helper类库)
Mar 28 PHP
PHP操作FTP类 (上传、下载、移动、创建等)
Mar 31 PHP
thinkphp3.2实现上传图片的控制器方法
Apr 28 PHP
thinkPHP框架中layer.js的封装与使用方法示例
Jan 18 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实现评委评分器
2015/07/31 PHP
Laravel框架实现即点即改功能的方法分析
2019/10/31 PHP
PHP实现递归的三种方法
2020/07/04 PHP
基于JQuery的浮动DIV显示提示信息并自动隐藏
2011/02/11 Javascript
JS TextArea字符串长度限制代码集合
2012/10/31 Javascript
JS读取XML文件示例代码
2013/11/15 Javascript
jquery数组封装使用方法分享(jquery数组遍历)
2014/03/25 Javascript
Node.js中的模块机制学习笔记
2014/11/04 Javascript
AngularJS入门教程之Hello World!
2014/12/06 Javascript
简介JavaScript中的setDate()方法的使用
2015/06/11 Javascript
特殊日期提示功能的实现方法
2016/06/16 Javascript
JQuery学习总结【二】
2016/12/01 Javascript
基于Bootstrap的Java开发问题汇总(Spring MVC)
2017/01/15 Javascript
JS触摸事件、手势事件详解
2017/05/04 Javascript
angularjs路由传值$routeParams详解
2020/09/05 Javascript
详解如何从零开始搭建Express+Vue开发环境
2018/07/17 Javascript
一次Webpack配置文件的分离实战记录
2018/11/30 Javascript
使用React手写一个对话框或模态框的方法示例
2019/04/25 Javascript
JS中实现一个下载进度条及播放进度条的代码
2019/06/10 Javascript
微信小程序class封装http代码实例
2019/08/24 Javascript
vue中jsonp插件的使用方法示例
2020/09/10 Javascript
Win7下Python与Tensorflow-CPU版开发环境的安装与配置过程
2018/01/04 Python
tensorflow实现图像的裁剪和填充方法
2018/07/27 Python
Django框架实现的分页demo示例
2019/05/25 Python
Pandas时间序列:重采样及频率转换方式
2019/12/26 Python
通过实例了解Python str()和repr()的区别
2020/01/17 Python
如何使用selenium和requests组合实现登录页面
2020/02/03 Python
Python使用os.listdir和os.walk获取文件路径
2020/05/21 Python
python爬虫scrapy框架的梨视频案例解析
2021/02/20 Python
String是最基本的数据类型吗?
2013/06/13 面试题
活动总结报告怎么写
2014/07/03 职场文书
小学教师自我剖析材料
2014/09/29 职场文书
2015年个人实习工作总结
2014/12/12 职场文书
党小组评议意见
2015/06/02 职场文书
读《儒林外史》有感:少一些功利,多一些真诚
2020/01/19 职场文书
win10识别不了U盘怎么办 win10系统读取U盘失败的解决办法
2022/08/05 数码科技