浅析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 相关文章推荐
substr()函数中文版
Oct 09 PHP
PHP中GET变量的使用
Oct 09 PHP
建立文件交换功能的脚本(三)
Oct 09 PHP
让PHP显示Facebook的粉丝数量方法
Jan 08 PHP
ThinkPHP之A方法实例讲解
Jun 20 PHP
PHP中绘制图像的一些函数总结
Nov 19 PHP
[原创]php获取数组中键值最大数组项的索引值
Mar 17 PHP
php函数连续调用实例分析
Jul 30 PHP
纯PHP代码实现支付宝批量付款
Dec 24 PHP
全面解析PHP操作Memcache基本函数
Jul 14 PHP
php mysql获取表字段名称和字段信息的三种方法
Nov 13 PHP
thinkphp 抓取网站的内容并且保存到本地的实例详解
Aug 25 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
动态生成gif格式的图像要注意?
2006/10/09 PHP
PHP开发中常见的安全问题详解和解决方法(如Sql注入、CSRF、Xss、CC等)
2014/04/21 PHP
php实现SAE上使用storage上传与下载文件的方法
2015/06/29 PHP
php实现上传图片文件代码
2015/07/19 PHP
PHP连接MySQL数据库的三种方式实例分析【mysql、mysqli、pdo】
2019/11/04 PHP
Prototype的Class.create函数解析
2011/09/22 Javascript
基于JavaScript实现继承机制之调用call()与apply()的方法详解
2013/05/07 Javascript
js中switch case循环实例代码
2013/12/30 Javascript
使用FlexiGrid实现Extjs表格效果方法分享
2014/12/16 Javascript
用队列模拟jquery的动画算法实例
2015/01/20 Javascript
javascript判断复选框是否选中的方法
2015/10/16 Javascript
jquery 表单验证之通过 class验证表单不为空
2015/11/02 Javascript
fullpage.js全屏滚动插件使用实例
2016/09/06 Javascript
Angularjs中ng-repeat-start与ng-repeat-end的用法实例介绍
2016/12/31 Javascript
100行代码理解和分析vue2.0响应式架构
2017/03/09 Javascript
关于Ajax的原理以及代码封装详解
2017/09/08 Javascript
基于cropper.js封装vue实现在线图片裁剪组件功能
2018/03/01 Javascript
Vue2.0+Vux搭建一个完整的移动webApp项目的示例
2019/03/19 Javascript
小程序api实现promise封装过程解析
2019/11/21 Javascript
原生微信小程序开发中 redux 的使用详解
2021/02/18 Javascript
给Python入门者的一些编程建议
2015/06/15 Python
一步步解析Python斗牛游戏的概率
2016/02/12 Python
用python实现k近邻算法的示例代码
2018/09/06 Python
一行代码让 Python 的运行速度提高100倍
2018/10/08 Python
Django后台admin的使用详解
2019/07/08 Python
在win64上使用bypy进行百度网盘文件上传功能
2020/01/02 Python
python接口自动化之ConfigParser配置文件的使用详解
2020/08/03 Python
影视艺术学院毕业生自荐信
2013/11/13 职场文书
《桃林那间小木屋》教学反思
2014/05/01 职场文书
优秀工会工作者事迹材料
2014/06/02 职场文书
团日活动总结报告
2014/06/25 职场文书
户籍证明书标准模板
2014/09/10 职场文书
2014年志愿者工作总结
2014/11/20 职场文书
python基于turtle绘制几何图形
2021/06/15 Python
Jackson 反序列化时实现大小写不敏感设置
2021/06/29 Java/Android
MySQL配置主从服务器(一主多从)
2021/08/07 MySQL