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 相关文章推荐
eWebEditor v3.8 商业完整版 (PHP)
Dec 06 PHP
windows服务器中检测PHP SSL是否开启以及开启SSL的方法
Apr 25 PHP
php随机生成数字字母组合的方法
Mar 18 PHP
十个PHP高级应用技巧果断收藏
Sep 25 PHP
WordPress中Gravatar头像缓存到本地及相关优化的技巧
Dec 19 PHP
Smarty环境配置与使用入门教程
May 11 PHP
PHP入门教程之表单与验证实例详解
Sep 11 PHP
php微信开发之自定义菜单完整流程
Oct 08 PHP
php修改数组键名的方法示例
Apr 15 PHP
ecshop添加菜单及权限分配问题
Nov 21 PHP
bindParam和bindValue的区别以及在Yii2中的使用详解
Mar 12 PHP
Laravel5.5以下版本中如何自定义日志行为详解
Aug 01 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中mail函数发送邮件失败的解决方法
2014/12/24 PHP
PHP实现多维数组转字符串和多维数组转一维数组的方法
2015/08/08 PHP
JavaScript实现删除电脑的关机键
2016/07/26 PHP
不一样的文字闪烁 轮番闪烁
2009/11/11 Javascript
JS 两个字符串时间的天数差计算
2013/08/25 Javascript
JavaScript定义类的几种方式总结
2014/01/06 Javascript
js获取日期:昨天今天和明天、后天
2014/06/11 Javascript
js实现获取当前时间是本月第几周的方法
2015/08/11 Javascript
jQuery选择器基础入门教程
2016/05/10 Javascript
JQ选择器_选择同类元素的第N个子元素的实现方法
2016/09/08 Javascript
详解Vue 2.0封装axios笔记
2017/06/22 Javascript
JavaScript变量作用域_动力节点Java学院整理
2017/06/27 Javascript
jQuery实现锚点向下平滑滚动特效示例
2017/08/29 jQuery
vue的token刷新处理的方法
2018/07/17 Javascript
JavaScript设计模式--简单工厂模式实例分析【XHR工厂案例】
2020/05/23 Javascript
Vue实现图书管理小案例
2020/12/03 Vue.js
[54:57]DOTA2-DPC中国联赛定级赛 Aster vs DLG BO3第二场 1月8日
2021/03/11 DOTA
[01:42:49]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD BO3 第一场 2月26日
2021/03/11 DOTA
采用python实现简单QQ单用户机器人的方法
2014/07/03 Python
python自带的http模块详解
2016/11/06 Python
python操作mysql代码总结
2018/06/01 Python
python 画3维轨迹图并进行比较的实例
2019/12/06 Python
python计算二维矩形IOU实例
2020/01/18 Python
Python tkinter模版代码实例
2020/02/05 Python
手把手教你如何用Pycharm2020.1.1配置远程连接的详细步骤
2020/08/07 Python
详解HTML5中的Communication API基本使用方法
2016/01/29 HTML / CSS
德国低价购买灯具和家具网站:Style-home.de
2016/11/25 全球购物
德国鞋子网上商店:Omoda.de
2017/03/31 全球购物
美国轮胎网站:Priority Tire
2018/11/28 全球购物
什么叫应用程序域?什么是受管制的代码?什么是强类型系统?什么是装箱和拆箱?
2016/08/13 面试题
团支书的期末学习总结自我评价
2013/11/01 职场文书
保安部任务及岗位职责
2014/02/25 职场文书
全国优秀教师事迹材料
2014/08/26 职场文书
简易版租房协议书范本
2014/10/13 职场文书
法制教育观后感
2015/06/17 职场文书
Python进行区间取值案例讲解
2021/08/02 Python