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 相关文章推荐
同时提取多条新闻中的文本一例
Oct 09 PHP
《PHP边学边教》(02.Apache+PHP环境配置――上篇)
Dec 13 PHP
php数组函数序列之prev() - 移动数组内部指针到上一个元素的位置,并返回该元素值
Oct 31 PHP
PHP中使用数组实现堆栈数据结构的代码
Feb 05 PHP
php eval函数用法 PHP中eval()函数小技巧
Oct 31 PHP
PHP删除数组中特定元素的两种方法
Jul 02 PHP
php中的filesystem文件系统函数介绍及使用示例
Feb 13 PHP
ThinkPHP连接数据库及主从数据库的设置教程
Aug 22 PHP
php调用新浪短链接API的方法
Nov 08 PHP
thinkPHP js文件中U方法不被解析问题的解决方法
Dec 05 PHP
php动态读取数据清除最右边距的方法
Apr 12 PHP
php远程请求CURL案例(爬虫、保存登录状态)
Apr 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版(1)
2006/10/09 PHP
phpmyadmin中配置文件现在需要绝密的短语密码的解决方法
2007/02/11 PHP
使用PHP批量生成随机用户名
2008/07/10 PHP
实现PHP+Mysql无限分类的方法汇总
2015/03/02 PHP
php实现只保留mysql中最新1000条记录
2015/06/18 PHP
php检测mysql表是否存在的方法小结
2017/07/20 PHP
PHP简单验证码功能机制实例详解
2019/03/27 PHP
Laravel5.5+ 使用API Resources快速输出自定义JSON方法详解
2020/04/06 PHP
Jquery 基础学习笔记之文档处理
2009/05/29 Javascript
jquery实现图片等比例缩放以及max-width在ie中不兼容解决
2013/03/21 Javascript
Js动态添加复选框Checkbox的实例方法
2013/04/08 Javascript
jQuery中对节点进行操作的相关介绍
2013/04/16 Javascript
js借助ActiveXObject实现创建文件
2013/09/29 Javascript
JavaScript在Android的WebView中parseInt函数转换不正确问题解决方法
2015/04/25 Javascript
js实现的简洁网页滑动tab菜单效果代码
2015/08/24 Javascript
jquery与js实现全选功能的区别
2017/06/11 jQuery
BootStrap入门学习第一篇
2017/08/28 Javascript
vue axios 表单提交上传图片的实例
2018/03/16 Javascript
node puppeteer(headless chrome)实现网站登录
2018/05/09 Javascript
基于Vue中使用节流Lodash throttle详解
2019/10/30 Javascript
[52:06]完美世界DOTA2联赛决赛日 Inki vs LBZS 第一场 11.08
2020/11/10 DOTA
Python给你的头像加上圣诞帽
2018/01/04 Python
Python读取txt文件数据的方法(用于接口自动化参数化数据)
2018/06/27 Python
python tkinter组件摆放方式详解
2019/09/16 Python
git查看、创建、删除、本地、远程分支方法详解
2020/02/18 Python
python对接ihuyi实现短信验证码发送
2020/05/10 Python
django Layui界面点击弹出对话框并请求逻辑生成分页的动态表格实例
2020/05/12 Python
PyCharm2019 安装和配置教程详解附激活码
2020/07/31 Python
HTML5实现QQ聊天气泡效果
2017/06/26 HTML / CSS
文秘专业应届生求职信
2014/05/26 职场文书
奥运会口号
2014/06/13 职场文书
2014预备党员党课学习心得范文
2014/07/08 职场文书
《周恩来的四个昼夜》观后思想汇报范文两篇
2014/09/10 职场文书
公司员工宿舍管理制度
2015/08/03 职场文书
redis连接被拒绝的解决方案
2021/04/12 Redis
一次SQL如何查重及去重的实战记录
2022/03/13 MySQL