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 相关文章推荐
php的正则处理函数总结分析
Jun 20 PHP
php获取中文拼音首字母类和函数分享
Apr 24 PHP
php字符串截取函数用法分析
Nov 25 PHP
PHP中使用Imagick读取pdf并生成png缩略图实例
Jan 21 PHP
基于PHP制作验证码
Oct 12 PHP
laravel学习笔记之模型事件的几种用法示例
Aug 15 PHP
Laravel框架路由设置与使用示例
Jun 12 PHP
Yii2.0建立公共方法简单示例
Jan 29 PHP
PHP实现数组向任意位置插入,删除,替换数据操作示例
Apr 05 PHP
PHP面向对象类型约束用法分析
Jun 12 PHP
tp5.1 框架数据库常见操作详解【添加、删除、更新、查询】
May 26 PHP
基于PHP实现用户在线状态检测
Nov 10 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
Terran兵种对照表
2020/03/14 星际争霸
从PHP的源码中深入了解stdClass类
2014/04/18 PHP
php实现数组按指定KEY排序的方法
2015/03/30 PHP
php字符串过滤strip_tags()函数用法实例分析
2019/06/24 PHP
6种javascript显示当前系统时间代码
2015/12/01 Javascript
JavaScript中对JSON对象的基本操作示例
2016/05/21 Javascript
jQuery hover事件简单实现同时绑定2个方法
2016/06/07 Javascript
js原生跨域_用script标签的简单实现
2016/09/24 Javascript
微信开发 使用picker封装省市区三级联动模板
2016/10/28 Javascript
微信小程序开发animation心跳动画效果
2017/08/16 Javascript
json对象及数组键值的深度大小写转换问题详解
2018/03/30 Javascript
react-native动态切换tab组件的方法
2018/07/07 Javascript
从零开始用electron手撸一个截屏工具的示例代码
2018/10/10 Javascript
vue如何限制只能输入正负数及小数
2019/07/04 Javascript
VUE实现强制渲染,强制更新
2019/10/29 Javascript
[46:47]2014 DOTA2国际邀请赛中国区预选赛 DT VS HGT
2014/05/22 DOTA
Python专用方法与迭代机制实例分析
2014/09/15 Python
Python可变和不可变、类的私有属性实例分析
2019/05/31 Python
通过Turtle库在Python中绘制一个鼠年福鼠
2020/02/03 Python
Python telnet登陆功能实现代码
2020/04/16 Python
Python实现一个简单的递归下降分析器
2020/08/01 Python
CSS3 完美实现圆角效果
2009/07/13 HTML / CSS
canvas实现图片镜像翻转的2种方式
2020/07/22 HTML / CSS
Prototype是怎么扩展DOM的
2014/10/01 面试题
护理职业生涯规划书
2014/01/24 职场文书
预备党员入党自我评价范文
2014/03/10 职场文书
导师就业推荐信范文
2014/05/22 职场文书
大学生优秀班干部事迹材料
2014/05/26 职场文书
员工团队活动方案
2014/08/28 职场文书
2014年学校办公室工作总结
2014/12/19 职场文书
古诗之爱国古诗5首
2019/09/20 职场文书
golang 在windows中设置环境变量的操作
2021/04/29 Golang
python文本处理的方案(结巴分词并去除符号)
2021/05/26 Python
java中重写父类方法加不加@Override详解
2021/06/21 Java/Android
python的html标准库
2022/04/29 Python
mysql数据库如何转移到oracle
2022/12/24 MySQL