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 相关文章推荐
php4的彩蛋
Oct 09 PHP
用PHP即时捕捉PHP中的错误并发送email通知的实现代码
Jan 19 PHP
CURL的学习和应用(附多线程实现)
Jun 03 PHP
$_GET['goods_id']+0 的使用详解
Jun 06 PHP
PHP获取MSN好友列表类的实现代码
Jun 23 PHP
php数组查找函数in_array()、array_search()、array_key_exists()使用实例
Apr 29 PHP
PHP把MSSQL数据导入到MYSQL的方法
Dec 27 PHP
PHP中error_log()函数的使用方法
Jan 20 PHP
详解WordPress中简码格式标签编写的基本方法
Dec 22 PHP
PHP基于单例模式实现的数据库操作基类
Jan 15 PHP
php 数组元素快速去重
May 05 PHP
PHP命令Command模式用法实例分析
Aug 08 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 选项及相关信息函数库
2006/12/04 PHP
关于php fread()使用技巧
2010/01/22 PHP
php的POSIX 函数以及进程测试的深入分析
2013/06/03 PHP
PHP二维数组排序的3种方法和自定义函数分享
2014/04/09 PHP
PHP中的闭包(匿名函数)浅析
2015/02/07 PHP
详解PHP版本兼容之openssl调用参数
2018/07/25 PHP
javascript KeyDown、KeyPress和KeyUp事件的区别与联系
2009/12/03 Javascript
JavaScript中两种链式调用实现代码
2011/01/12 Javascript
JavaScript String.replace函数参数实例说明
2013/06/06 Javascript
Node.js和PHP根据ip获取地理位置的方法
2014/03/14 Javascript
DOM基础教程之使用DOM设置文本框
2015/01/20 Javascript
jQuery实现“扫码阅读”功能
2015/01/21 Javascript
BootStrap实现带有增删改查功能的表格(DEMO详解)
2016/10/26 Javascript
DWR3 访问WEB元素的两种方法实例详解
2017/01/03 Javascript
原生JS实现在线问卷调查投票特效
2017/01/03 Javascript
利用CSS、JavaScript及Ajax实现图片预加载的三大方法
2017/01/22 Javascript
JavaScript使用ZeroClipboard操作剪切板
2017/05/10 Javascript
纯JS实现简单的日历
2017/06/26 Javascript
详解前端路由实现与react-router使用姿势
2017/08/07 Javascript
react实现antd线上主题动态切换功能
2019/08/12 Javascript
Javascript异步编程async实现过程详解
2020/04/02 Javascript
vue 使用 sortable 实现 el-table 拖拽排序功能
2020/12/26 Vue.js
vue3中轻松实现switch功能组件的全过程
2021/01/07 Vue.js
python编程-将Python程序转化为可执行程序[整理]
2007/04/09 Python
朴素贝叶斯Python实例及解析
2018/11/19 Python
详解Python中的文件操作
2021/01/14 Python
移动端开发HTML5页面点击按钮后出现闪烁或黑色背景的解决办法
2018/09/19 HTML / CSS
Java里面StringBuilder和StringBuffer有什么区别
2016/06/06 面试题
销售员试用期自我评价
2014/09/15 职场文书
2015届本科毕业生自我鉴定
2014/09/27 职场文书
2014年班干部工作总结
2014/11/25 职场文书
大连导游词
2015/02/12 职场文书
学生会个人总结范文
2015/02/15 职场文书
小学语文教师研修感悟
2015/11/18 职场文书
信息技术课教学反思
2016/02/23 职场文书
2019入党申请书格式和范文
2019/06/25 职场文书