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自动反斜杠的函数代码
Jan 05 PHP
Can't create/write to file 'C:\WINDOWS\TEMP\...MYSQL报错解决方法
Jun 30 PHP
PHP中获取变量的变量名的一段代码的bug分析
Jul 07 PHP
用PHP即时捕捉PHP中的错误并发送email通知的实现代码
Jan 19 PHP
PHP 使用pcntl和libevent 实现Timer功能
Oct 27 PHP
php中过滤非法字符的具体实现
Oct 29 PHP
Thinkphp中import的几个用法详细介绍
Jul 02 PHP
解决phpcms更换javascript的幻灯片代码调用图片问题
Dec 26 PHP
微信支付开发交易通知实例
Jul 12 PHP
thinkPHP实现多字段模糊匹配查询的方法
Dec 01 PHP
PHP 实现页面静态化的几种方法
Jul 23 PHP
PHP检查端口是否可以被绑定的方法示例
Aug 09 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采集腾讯微博的实现代码
2012/01/19 PHP
探讨PHP函数ip2long转换IP时数值太大产生负数的解决方法
2013/06/06 PHP
PHP中$_SERVER的详细参数与说明介绍
2013/10/26 PHP
PHP 利用Mail_MimeDecode类提取邮件信息示例
2014/01/26 PHP
PHP 读取和编写 XML
2014/11/19 PHP
iOS10推送通知开发教程
2016/09/19 PHP
PHP随机获取未被微信屏蔽的域名(微信域名检测)
2017/03/19 PHP
PHP使用ActiveMQ实例
2018/02/05 PHP
PHP 计算两个特别大的整数实例代码
2018/05/07 PHP
node.js中的fs.symlink方法使用说明
2014/12/15 Javascript
jQuery中$.ajax()和$.getJson()同步处理详解
2015/08/12 Javascript
JavaScript中函数表达式和函数声明及函数声明与函数表达式的不同
2015/11/15 Javascript
js实现的简单图片浮动效果完整实例
2016/05/10 Javascript
JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)
2016/12/14 Javascript
利用Node.js对文件进行重命名
2017/03/12 Javascript
jQuery+Ajax实现用户名重名实时检测
2017/06/01 jQuery
js中时间格式化的几种方法
2018/07/22 Javascript
vue webpack打包后图片路径错误的完美解决方法
2018/12/07 Javascript
vue项目中使用AES实现密码加密解密(ECB和CBC两种模式)
2019/08/12 Javascript
浅析Python基础-流程控制
2016/03/18 Python
python 环境变量和import模块导入方法(详解)
2017/07/11 Python
Pycharm编辑器技巧之自动导入模块详解
2017/07/18 Python
Django项目实战之用户头像上传与访问的示例
2018/04/21 Python
python列表list保留顺序去重的实例
2018/12/14 Python
对python调用RPC接口的实例详解
2019/01/03 Python
详解如何设置Python环境变量?
2019/05/13 Python
如何用OpenCV -python3实现视频物体追踪
2019/12/04 Python
Python实现线性判别分析(LDA)的MATLAB方式
2019/12/09 Python
python3实现名片管理系统(控制台版)
2020/11/29 Python
python使用scapy模块实现ping扫描的过程详解
2021/01/21 Python
CSS3媒体查询(Media Queries)介绍
2013/09/12 HTML / CSS
捷克建筑材料网上商店:DEK.cz
2021/03/06 全球购物
理工大学毕业生自荐信
2013/11/01 职场文书
庆元旦广播稿
2014/02/10 职场文书
2015年学生会工作总结范文
2015/03/31 职场文书
《索溪峪的野》教学反思
2016/02/19 职场文书