浅析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 相关文章推荐
php5中date()得出的时间为什么不是当前时间的解决方法
Jun 30 PHP
PHP开发的一些注意点总结
Oct 12 PHP
解析在apache里面给php写虚拟目录的详细方法
Jun 24 PHP
php 批量替换程序的具体实现代码
Oct 04 PHP
PHP OPP机制和模式简介(抽象类、接口和契约式编程)
Jun 09 PHP
PHP网络操作函数汇总
May 18 PHP
php使用标签替换的方式生成静态页面
May 21 PHP
PHP session 会话处理函数
Jun 06 PHP
PHP在同一域名下两个不同的项目做独立登录机制详解
Sep 22 PHP
PHP判断json格式是否正确的实现代码
Sep 20 PHP
php实现二叉树中和为某一值的路径方法
Oct 14 PHP
php 自定义函数实现将数据 以excel 表格形式导出示例
Nov 13 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 header()函数使用说明
2008/07/10 PHP
php discuz 主题表和回帖表的设计
2009/03/13 PHP
PHP 实用代码收集
2010/01/22 PHP
PHPMailer发送HTML内容、带附件的邮件实例
2014/07/01 PHP
php使用curl代理实现抓取数据的方法
2017/02/03 PHP
php单元测试phpunit入门实例教程
2017/11/17 PHP
js判断变量是否空值的代码
2008/10/26 Javascript
使用JavaScript和C#中获得referer
2014/11/14 Javascript
基于bootstrap-datetimepicker.js不支持IE8的快速解决方法
2016/11/07 Javascript
js获取当前时间(昨天、今天、明天)
2016/11/23 Javascript
JS常用知识点整理
2017/01/21 Javascript
js单页hash路由原理与应用实战详解
2017/08/14 Javascript
vue 点击展开显示更多(点击收起部分隐藏)
2019/04/09 Javascript
vue axios重复点击取消上一次请求封装的方法
2019/06/19 Javascript
angular8和ngrx8结合使用的步骤介绍
2019/12/01 Javascript
JavaScript 监听组合按键思路及代码实现
2020/07/28 Javascript
Nginx搭建HTTPS服务器和强制使用HTTPS访问的方法
2015/08/16 Python
python开发之thread线程基础实例入门
2015/11/11 Python
Python常用的爬虫技巧总结
2016/03/28 Python
轻松掌握python设计模式之策略模式
2016/11/18 Python
Python计时相关操作详解【time,datetime】
2017/05/26 Python
Python多线程原理与用法详解
2018/08/20 Python
spark dataframe 将一列展开,把该列所有值都变成新列的方法
2019/01/29 Python
利用Python查看微信共同好友功能的实现代码
2019/04/24 Python
Python3简单爬虫抓取网页图片代码实例
2019/08/26 Python
Python warning警告出现的原因及忽略方法
2020/01/31 Python
pandas针对excel处理的实现
2021/01/15 Python
英国第一的滑雪服装和装备零售商:Snow+Rock
2020/02/01 全球购物
给医务人员表扬信
2014/01/12 职场文书
高中运动会入场词
2014/02/14 职场文书
项目合作意向书范本
2014/04/01 职场文书
五心教育心得体会
2014/09/04 职场文书
2014年乡镇领导个人整改措施
2014/09/19 职场文书
用Python制作灯光秀短视频的思路详解
2021/04/13 Python
mysql联合索引的使用规则
2021/06/23 MySQL
java设计模式--三种工厂模式详解
2021/07/21 Java/Android