浅析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
用PHPdig打造属于你自己的Google[图文教程]
Feb 14 PHP
PHP 第二节 数据类型之转换
Apr 28 PHP
php中的boolean(布尔)类型详解
Oct 28 PHP
php实现的支持断点续传的文件下载类
Sep 23 PHP
浅析php适配器模式(Adapter)
Nov 25 PHP
Zend Framework教程之动作的基类Zend_Controller_Action详解
Mar 07 PHP
CodeIgniter记录错误日志的方法全面总结
May 17 PHP
Yii2.0多文件上传实例说明
Jul 24 PHP
PHP实现的各类hash算法长度及性能测试实例
Aug 27 PHP
可兼容php5与php7的cURL文件上传功能实例分析
May 11 PHP
Laravel5.4简单实现app接口Api Token认证方法
Aug 29 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环境配置 php5 MySQL5 apache2 phpmyadmin安装与配置图文教程
2007/03/16 PHP
PHP 获取ip地址代码汇总
2015/07/05 PHP
PHP 绘制网站登录首页图片验证码
2016/04/12 PHP
PHP高并发和大流量解决方案整理
2019/12/24 PHP
php的RSA加密解密算法原理与用法分析
2020/01/23 PHP
关于PHP求解三数之和问题详析
2020/11/09 PHP
InnerHtml和InnerText的区别分析
2009/03/13 Javascript
基于jquery的修改当前TAB显示标题的代码
2010/12/11 Javascript
Javascript 页面模板化很多人没有使用过的方法
2012/06/05 Javascript
javascript动态加载实现方法一
2012/08/22 Javascript
javascript遍历控件实例详细解析
2014/01/10 Javascript
jquery跟js初始化加载的多种方法及区别介绍
2014/04/02 Javascript
ie8下修改input的type属性报错的解决方法
2014/09/16 Javascript
JavaScript中的console.group()函数详细介绍
2014/12/29 Javascript
javascript作用域问题实例分析
2015/07/13 Javascript
mvc 、bootstrap 结合分布式图简单实现分页
2016/10/10 Javascript
从零学习node.js之mysql数据库的操作(五)
2017/02/24 Javascript
JS实现图片预加载之无序预加载功能代码
2017/05/12 Javascript
vue2.0设置proxyTable使用axios进行跨域请求的方法
2017/10/19 Javascript
浅谈Vue render函数在ElementUi中的应用
2018/09/06 Javascript
Nuxt升级2.0.0时出现的问题(小结)
2018/10/08 Javascript
layer弹出框确定前验证:弹出消息框的方法(弹出两个layer)
2019/09/21 Javascript
在Python的Django框架中使用通用视图的方法
2015/07/21 Python
Saltstack快速入门简单汇总
2016/03/01 Python
快速入门python学习笔记
2017/12/06 Python
PYTHON EVAL的用法及注意事项解析
2019/09/06 Python
requests在python中发送请求的实例讲解
2021/02/17 Python
HTML5新标签兼容——&gt; 的两种方法
2018/09/12 HTML / CSS
PacSun官网:加州生活方式服装、鞋子和配饰
2018/03/10 全球购物
工作表现自我评价
2014/02/08 职场文书
社会调查研究计划书
2014/05/01 职场文书
关于青春的演讲稿500字
2014/08/22 职场文书
公司保洁员岗位职责
2015/02/13 职场文书
pytorch显存一直变大的解决方案
2021/04/08 Python
Java并发编程之原子性-Atomic的使用
2022/03/16 Java/Android
Python使用BeautifulSoup4修改网页内容
2022/05/20 Python