PHP配合fiddler抓包抓取微信指数小程序数据的实现方法分析


Posted in PHP onJanuary 02, 2020

本文实例讲述了PHP配合fiddler抓包抓取微信指数小程序数据的实现方法。分享给大家供大家参考,具体如下:

这两天研究了下微信指数这个东西。要抓取呢,按照一般思路的话,那就是使用fiddler抓取手机包,然后进行分析获取地址然后请求就可以了。

这么想你是没错,如果你果断这么做了,那就是too yang too simple了。大家可以看下,微信抓取有以下几个步骤:

1、开始登陆小程序

2、获取访问需要的令牌

3、那这令牌去获取数据

首先的难点就是小程序的登陆那一步。你得先登陆了微信之后才可以访问小程序,因为小程序是基于微信来运行的。所以,你登录的时候需要用到一个微信内部生成的js_code这个值。光是这一步就是一个深不见底的巨坑。

好吧,亿分之一概率的情况下,你获取了这个值,之后就是获取search_key这个值,还有就是一个UNIX时间戳。

完事你就可以尽情的获取你想要的数据了??????

少年,做人还是要稳重点的。。。微信有一个访问限制的系统。请求到一定的频次,会提示操作频繁的。所以你费好大劲完事之后,还是没有什么太实际的结果。

网上有一个解决方案是这样的,就是用lua语言配合触动精灵写一个操作微信的脚本,类似自动抢红包那样的。完事用这个脚本来自动输入关键词进行查询,完事再使用抓包工具获取这些请求内容。

关于使用抓包工具获取请求内容不太清楚的亲们,可以参考:https://3water.com/article/177679.htm

先不说这种方案的成功率。咱们先来说说效率问题。难不成,你这样做,微信就不会限制你的请求???

还有就是学习一门语言的各种成本。。。

所以,本人使用PHP结合fiddler抓包工具,设计了一个简单,易学的抓取数据的方案。容我一一道来:

首先就是配置fiddler可以把抓取的数据保存到本地。

参考链接:https://3water.com/article/177679.htm

这是用来获取访问令牌的,核心PHP代码如下:

function get_search_key($path)
{
  $file = fopen($path, "r");
  $user=array();
  $i=0;
  while(! feof($file))
  {
    $user[$i]= mb_convert_encoding ( fgets($file), 'UTF-8','Unicode');
    $i++;
  }
  fclose($file);
  $user=array_filter($user);
  foreach ($user as $item_u => $value_u) {
    if(strstr($value_u,"search_key=")){
      $temp[] = $value_u;
    }
  }
  $end_url = end($temp);
  $reg = "#openid=[a-zA-Z0-9]++_[a-zA-Z0-9]++&search_key=\d++_\d++#isU";
  preg_match_all($reg,$end_url,$time);
  return $time[0][0];
}

输入保存文件的地址,得到返回值,拿着这个返回值,来进行请求,就可以获取你想要的数据了。

不过,这玩意也是有缺陷。首先就是配置手机连接电脑,关于这个,我后期会在评论里补充上。再来就是配置fiddler保存包到本地文件。还有就是需要手机访问小程序之后程序才能运行成功。比较麻烦。

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
第一节--面向对象编程
Nov 16 PHP
WINDOWS下php5.2.4+mysql6.0+apache2.2.4+ZendOptimizer-3.3.0配置
Mar 28 PHP
php创建sprite
Feb 11 PHP
PHP调用VC编写的COM组件实例
Mar 29 PHP
thinkphp模板用法和内容输出实例
Nov 28 PHP
php抓取网站图片并保存的实现方法
Oct 29 PHP
PHP中strnatcmp()函数“自然排序算法”进行字符串比较用法分析(对比strcmp函数)
Jan 07 PHP
详解在YII2框架中使用UEditor编辑器发布文章
Nov 02 PHP
PHP抽象类基本用法示例
Dec 28 PHP
PHP如何通过表单直接提交大文件详解
Jan 08 PHP
ThinkPHP框架下微信支付功能总结踩坑笔记
Apr 10 PHP
关于Anemometer图形化显示MySQL慢日志的工具搭建及使用的详细介绍
Jul 13 PHP
PHP+MySQL实现在线测试答题实例
Jan 02 #PHP
PHP CURL实现模拟登陆并上传文件操作示例
Jan 02 #PHP
TP3.2.3框架使用CKeditor编辑器在页面中上传图片的方法分析
Dec 31 #PHP
PHP利用缓存处理用户注册时的邮箱验证,成功后用户数据存入数据库操作示例
Dec 31 #PHP
Laravel 手动开关 Eloquent 修改器的操作方法
Dec 30 #PHP
Laravel 集成微信用户登录和绑定的实现
Dec 27 #PHP
PHP单元测试配置与使用方法详解
Dec 27 #PHP
You might like
推荐个功能齐全的发送PHP邮件类
2007/01/03 PHP
CakePHP去除默认显示的标题及图标的方法
2008/10/22 PHP
php自动注册登录验证机制实现代码
2011/12/20 PHP
解析curl提交GET,POST,Cookie的简单方法
2013/06/29 PHP
php分页原理 分页代码 分页类制作教程
2016/09/23 PHP
在页面上点击任一链接时触发一个事件的代码
2007/04/07 Javascript
(currentStyle)javascript为何有时用style得不到已设定的CSS的属性
2007/08/15 Javascript
javascript import css实例代码
2008/07/18 Javascript
js模仿html5 placeholder适应于不支持的浏览器
2013/01/13 Javascript
JS调试必备的5个debug技巧
2014/03/07 Javascript
JavaScript 获取任一float型小数点后两位的小数
2014/06/30 Javascript
JS实现超炫网页烟花动画效果的方法
2015/03/02 Javascript
简介JavaScript中fixed()方法的使用
2015/06/08 Javascript
bootstrap table实现双击可编辑、添加、删除行功能
2017/09/27 Javascript
jquery 时间戳转日期过程详解
2019/10/12 jQuery
在react-antd中弹出层form内容传递给父组件的操作
2020/10/24 Javascript
[03:11]TI9战队档案 - Alliance
2019/08/20 DOTA
python使用正则表达式匹配字符串开头并打印示例
2017/01/11 Python
详解Python进阶之切片的误区与高级用法
2018/12/24 Python
Python 旋转打印各种矩形的方法
2019/07/09 Python
python实现在多维数组中挑选符合条件的全部元素
2019/11/26 Python
pycharm 添加解释器的方法步骤
2020/08/31 Python
用OpenCV进行年龄和性别检测的实现示例
2021/01/29 Python
CSS3 实现弹跳的小球动画
2020/10/26 HTML / CSS
详解px单位html5响应式方案
2018/03/08 HTML / CSS
世界首屈一指的钓鱼用品商店:TackleDirect
2016/07/26 全球购物
英国假发网站:Hothair
2018/02/23 全球购物
PREMIUM-MALL法国:行李、箱包及配件在线
2019/05/30 全球购物
翻译专业应届生求职信
2013/11/23 职场文书
同事吵架检讨书
2014/02/05 职场文书
大学新生入学教育方案
2014/05/16 职场文书
国际金融专业自荐信
2014/07/05 职场文书
2014年财务科工作总结
2014/11/11 职场文书
安娜卡列尼娜观后感
2015/06/11 职场文书
《鲸》教学反思
2016/02/23 职场文书
人事行政部各岗位职责说明书!
2019/07/15 职场文书