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 相关文章推荐
URL Rewrite的设置方法
Jan 02 PHP
解析ajax事件的调用顺序
Jun 17 PHP
php与java通过socket通信的实现代码
Oct 21 PHP
ThinkPHP控制器间实现相互调用的方法
Oct 31 PHP
php限制上传文件类型并保存上传文件的方法
Mar 13 PHP
PHP实现搜索地理位置及计算两点地理位置间距离的实例
Jan 08 PHP
PHP简单判断字符串是否包含另一个字符串的方法
Mar 25 PHP
ecshop适应在PHP7的修改方法解决报错的实现
Nov 01 PHP
PHP面向对象程序设计之命名空间与自动加载类详解
Dec 02 PHP
Linux下快速搭建php开发环境
Mar 13 PHP
php使用socket调用http和smtp协议实例小结
Jul 26 PHP
php5对象复制、clone、浅复制与深复制实例详解
Aug 14 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
Session的工作方式
2006/10/09 PHP
国产PHP开发框架myqee新手快速入门教程
2014/07/14 PHP
PHP中使用虚代理实现延迟加载技术
2014/11/05 PHP
对采用动态原型方式无法展示继承机制得思考
2009/12/04 Javascript
php显示当前文件所在的文件以及文件夹所有文件以树形展开
2013/12/13 Javascript
使用nodejs、Python写的一个简易HTTP静态文件服务器
2014/07/18 NodeJs
Jquery实现图片预加载与延时加载的方法
2014/12/22 Javascript
关于JavaScript中事件绑定的方法总结
2016/10/26 Javascript
详解Vue 方法与事件处理器
2017/06/20 Javascript
jquery鼠标悬停导航下划线滑出效果
2017/09/29 jQuery
JavaScript实现计算圆周率到小数点后100位的方法示例
2018/05/08 Javascript
angular2路由之routerLinkActive指令【推荐】
2018/05/30 Javascript
json 带斜杠时如何解析的实现
2019/08/12 Javascript
vue-父子组件和ref实例详解
2019/11/10 Javascript
[52:06]FNATIC vs NIP 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
python显示生日是星期几的方法
2015/05/27 Python
python解析基于xml格式的日志文件
2017/02/25 Python
Python使用matplotlib和pandas实现的画图操作【经典示例】
2018/06/13 Python
python实现ID3决策树算法
2018/08/29 Python
pygame游戏之旅 创建游戏窗口界面
2018/11/20 Python
QML使用Python的函数过程解析
2019/09/26 Python
通过实例了解Python str()和repr()的区别
2020/01/17 Python
python+selenium+Chrome options参数的使用
2020/03/18 Python
HTML5基于flash实现播放RTMP协议视频的示例代码
2020/12/04 HTML / CSS
PurCotton全棉时代官网:100%天然棉花生产的生活护理用品
2016/11/18 全球购物
全球摩托车装备领导者:RevZilla
2017/09/04 全球购物
计算机数据库专业职业生涯规划书
2014/02/08 职场文书
数控技术学生的自我评价
2014/02/15 职场文书
月度优秀员工获奖感言
2014/08/16 职场文书
2014学校领导四风对照检查材料思想汇报
2014/09/23 职场文书
个人向公司借款协议书
2014/10/09 职场文书
抢劫罪辩护词
2015/05/21 职场文书
2015迎新晚会开场白
2015/07/17 职场文书
保安辞职申请书应该怎么写?
2019/07/15 职场文书
如何使用JavaScript策略模式校验表单
2021/04/29 Javascript
JavaScript的function函数详细介绍
2021/11/20 Javascript