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 相关文章推荐
优化NFR之一 --MSSQL Hello Buffer Overflow
Oct 09 PHP
php 判断服务器操作系统的类型
Feb 17 PHP
几道坑人的PHP面试题 试试看看你会不会也中招
Aug 19 PHP
浅谈php函数serialize()与unserialize()的使用方法
Aug 19 PHP
php简单实现查询数据库返回json数据
Apr 16 PHP
PHP+JS实现大规模数据提交的方法
Jul 02 PHP
以实例全面讲解PHP中多进程编程的相关函数的使用
Aug 18 PHP
PHP设计模式之迭代器模式
Jun 17 PHP
简述php环境搭建与配置
Dec 05 PHP
Yii框架核心组件类实例详解
Aug 06 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
Nov 25 PHP
laravel 框架执行流程与原理简单分析
Feb 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
短波收音机简介
2021/03/01 无线电
关于PHP结束标签的使用细节探讨及联想
2013/03/04 PHP
PHP控制反转(IOC)和依赖注入(DI)
2017/03/13 PHP
基于php流程控制语句和循环控制语句(讲解)
2017/10/23 PHP
Jquery实战_读书笔记1—选择jQuery
2010/01/22 Javascript
javascript+mapbar实现地图定位
2010/04/09 Javascript
可插入图片的TEXT文本框
2013/12/27 Javascript
jQuery 过滤方法filter()选择具有特殊属性的元素
2014/06/15 Javascript
JavaScript避免内存泄露及内存管理技巧
2014/09/05 Javascript
原生Javascript封装的一个AJAX函数分享
2014/10/11 Javascript
Nodejs实现多人同时在线移动鼠标的小游戏分享
2014/12/06 NodeJs
JavaScript设置body高度为浏览器高度的方法
2015/02/09 Javascript
jQuery常用样式操作实例分析(获取、设置、追加、删除、判断等)
2016/09/08 Javascript
JS 事件绑定、事件监听、事件委托详细介绍
2016/09/28 Javascript
jquery+css3实现熊猫tv导航代码分享
2018/02/12 jQuery
python读取二进制mnist实例详解
2017/05/31 Python
PyTorch线性回归和逻辑回归实战示例
2018/05/22 Python
pytorch 转换矩阵的维数位置方法
2018/12/08 Python
python3利用Socket实现通信的方法示例
2019/05/06 Python
Python django框架输入汉字,数字,字符生成二维码实现详解
2019/09/24 Python
django-orm F对象的使用 按照两个字段的和,乘积排序实例
2020/05/18 Python
python Socket网络编程实现C/S模式和P2P
2020/06/22 Python
Django3中的自定义用户模型实例详解
2020/08/23 Python
python 窃取摄像头照片的实现示例
2021/01/08 Python
IE兼容css3圆角的实现代码
2011/07/21 HTML / CSS
时尚的CSS3进度条效果
2012/02/22 HTML / CSS
基于CSS3制作立体效果导航菜单
2016/01/12 HTML / CSS
国际领先的学术出版商:Springer
2017/01/11 全球购物
乐高瑞士官方商店:LEGO CH
2020/08/16 全球购物
英国哈罗德园艺:Harrod Horticultural
2020/03/31 全球购物
经贸日语毕业生自荐信
2013/11/03 职场文书
《将心比心》教学反思
2014/04/08 职场文书
法人任命书范本
2014/06/04 职场文书
祖国在我心中演讲稿450字
2014/09/05 职场文书
自查自纠工作总结
2014/10/15 职场文书
Pytorch中使用ImageFolder读取数据集时忽略特定文件
2022/03/23 Python