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为表单获取的URL 地址预设 http 字符串函数代码
May 26 PHP
PHP,ASP.JAVA,JAVA代码格式化工具整理
Jun 15 PHP
PHP ? EasyUI DataGrid 资料取的方式介绍
Nov 07 PHP
php抽奖小程序的实现代码
Jun 18 PHP
php发送post请求的三种方法
Feb 11 PHP
php验证码的制作思路和实现方法
Nov 12 PHP
汇总PHPmailer群发Gmail的常见问题
Feb 24 PHP
Zend Framework教程之连接数据库并执行增删查的方法(附demo源码下载)
Mar 21 PHP
CodeIgniter连贯操作的底层原理分析
May 17 PHP
总结PHP代码规范、流程规范、git规范
Jun 18 PHP
Laravel 框架返回状态拦截代码
Oct 18 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
一个自定义位数的php多用户计数器代码
2007/03/11 PHP
PHP生成网页快照 不用COM不用扩展.
2010/02/11 PHP
php 随机记录mysql rand()造成CPU 100%的解决办法
2010/05/18 PHP
PHP过滤★等特殊符号的正则
2014/01/27 PHP
php读取目录所有文件信息dir示例
2014/03/18 PHP
Zend Framework教程之Zend_Form组件实现表单提交并显示错误提示的方法
2016/03/21 PHP
php微信开发自定义菜单
2016/08/27 PHP
php实现给二维数组中所有一维数组添加值的方法
2017/02/04 PHP
jQuery的context属性用法实例
2014/12/27 Javascript
jQuery实现ichat在线客服插件
2014/12/29 Javascript
JS实现控制表格行内容垂直对齐的方法
2015/03/30 Javascript
javascript实现数组去重的多种方法
2016/03/14 Javascript
JS随机洗牌算法之数组随机排序
2016/03/23 Javascript
Vue.js计算属性computed与watch(5)
2016/12/09 Javascript
Angularjs 依赖压缩及自定义过滤器写法
2017/02/04 Javascript
详解webpack 配合babel 将es6转成es5 超简单实例
2017/05/02 Javascript
详解基于electron制作一个node压缩图片的桌面应用
2019/01/29 Javascript
JavaScript原型继承和原型链原理详解
2020/02/04 Javascript
vue 保留两位小数 不能直接用toFixed(2) 的解决
2020/08/07 Javascript
[01:11:21]DOTA2-DPC中国联赛 正赛 Phoenix vs CDEC BO3 第三场 3月7日
2021/03/11 DOTA
Python+Django在windows下的开发环境配置图解
2009/11/11 Python
TF-IDF与余弦相似性的应用(一) 自动提取关键词
2017/12/21 Python
Python设计模式之MVC模式简单示例
2018/01/10 Python
教你用一行Python代码实现并行任务(附代码)
2018/02/02 Python
python将字符串以utf-8格式保存在txt文件中的方法
2018/10/30 Python
详解如何用django实现redirect的几种方法总结
2018/11/22 Python
django搭建项目配置环境和创建表过程详解
2019/07/22 Python
Python的赋值、深拷贝与浅拷贝的区别详解
2020/02/12 Python
浅谈three.js中的needsUpdate的应用
2012/11/12 HTML / CSS
canvas实现图片镜像翻转的2种方式
2020/07/22 HTML / CSS
Redbubble法国:由独立艺术家设计的独特产品
2019/01/08 全球购物
房屋租赁授权委托书范本
2014/09/20 职场文书
党员个人整改措施
2014/10/24 职场文书
小学少先队工作总结2015
2015/05/26 职场文书
五一晚会主持词
2015/07/01 职场文书
七年级作文(600字3篇)
2019/09/24 职场文书