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 相关文章推荐
UCenter Home二次开发指南
May 28 PHP
在PHP中养成7个面向对象的好习惯
Jan 28 PHP
php实现文件下载简单示例(代码实现文件下载)
Mar 10 PHP
php读取目录及子目录下所有文件名的方法
Oct 20 PHP
thinkPHP实现表单自动验证
Dec 24 PHP
PHP制作百度词典查词采集器
Jan 29 PHP
深入理解PHP之源码目录结构与功能说明
Jun 01 PHP
php 的反射详解及示例代码
Aug 25 PHP
PHP图像识别技术原理与实现
Oct 27 PHP
php实现基于pdo的事务处理方法示例
Jul 21 PHP
提高Laravel应用性能方法详解
Jun 24 PHP
Laravel find in set排序实例
Oct 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 session安全问题分析
2011/06/24 PHP
php的数组与字符串的转换函数整理汇总
2013/07/18 PHP
php实现的农历算法实例
2015/08/11 PHP
PHP最常用的正则表达式
2017/02/13 PHP
PHP implode()函数用法讲解
2019/03/08 PHP
Javascript学习笔记1 数据类型
2010/01/11 Javascript
jQuery实现点击图片翻页展示效果的方法
2015/02/16 Javascript
BootstrapTable与KnockoutJS相结合实现增删改查功能【一】
2016/05/10 Javascript
angularJs关于指令的一些冷门属性详解
2016/10/24 Javascript
jQuery EasyUI Panel面板组件使用详解
2017/02/28 Javascript
让div运动起来 js实现缓动效果
2017/07/06 Javascript
vue监听scroll的坑的解决方法
2017/09/07 Javascript
关于Vue单页面骨架屏实践记录
2017/12/13 Javascript
vue  directive定义全局和局部指令及指令简写
2018/11/20 Javascript
原生javascript运动函数的封装示例【匀速、抛物线、多属性的运动等】
2020/02/23 Javascript
vue+animation实现翻页动画
2020/06/29 Javascript
在vue中使用cookie记住用户上次选择的实例(本次例子中为下拉框)
2020/09/11 Javascript
Js数组扁平化实现方法代码总汇
2020/11/11 Javascript
python应用程序在windows下不出现cmd窗口的办法
2014/05/29 Python
Python应用03 使用PyQT制作视频播放器实例
2016/12/07 Python
TF-IDF算法解析与Python实现方法详解
2017/11/16 Python
解决Python2.7读写文件中的中文乱码问题
2018/04/12 Python
Python实现图片拼接的代码
2018/07/02 Python
使用Python代码实现Linux中的ls遍历目录命令的实例代码
2019/09/07 Python
numpy库reshape用法详解
2020/04/19 Python
jupyter notebook 的工作空间设置操作
2020/04/20 Python
如何使用 Flask 做一个评论系统
2020/11/27 Python
CSS3选择器新增问题的实现
2021/01/21 HTML / CSS
人大调研汇报材料
2014/08/14 职场文书
美容院合作经营协议书
2014/10/10 职场文书
医务人员医德考评自我评价
2015/03/03 职场文书
会计专业求职信范文
2015/03/19 职场文书
2015年学校精神文明工作总结
2015/05/27 职场文书
诚信教育主题班会
2015/08/13 职场文书
springboot+WebMagic+MyBatis爬虫框架的使用
2021/08/07 Java/Android
SpringBoot深入分析讲解监听器模式下
2022/07/15 Java/Android