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面向对象全攻略 (十五) 多态的应用
Sep 30 PHP
PHP类的使用 实例代码讲解
Dec 28 PHP
PHP 类商品秒杀计时实现代码
May 05 PHP
解析PHP跳出循环的方法以及continue、break、exit的区别介绍
Jul 01 PHP
删除html标签得到纯文本可处理嵌套的标签
Apr 28 PHP
PHP的error_reporting错误级别变量对照表
Jul 08 PHP
Thinkphp 中 distinct 的用法解析
Dec 14 PHP
Thinkphp通过一个入口文件如何区分移动端和PC端
Apr 18 PHP
使用PHP json_decode可能遇到的坑与解决方法
Aug 03 PHP
利用PHPStorm如何开发Laravel应用详解
Aug 30 PHP
使用PHPExcel导出Excel表
Sep 08 PHP
Yii 框架入口脚本示例分析
May 19 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
如何去掉文章里的 html 语法
2006/10/09 PHP
PHP 和 MySQL 基础教程(三)
2006/10/09 PHP
php 静态页面中显示动态内容
2009/08/14 PHP
smarty 缓存控制前的页面静态化原理
2013/03/15 PHP
php文件缓存类汇总
2014/11/21 PHP
CodeIgniter 完美解决URL含有中文字符串
2016/05/13 PHP
JQuery Tips(4) 一些关于提高JQuery性能的Tips
2009/12/19 Javascript
读jQuery之二(两种扩展)
2011/06/11 Javascript
js 获取浏览器版本以此来调整CSS的样式
2014/06/03 Javascript
使用jquery菜单插件HoverTree仿京东无限级菜单
2014/12/18 Javascript
javascript实现的图片切割多块效果实例
2015/05/07 Javascript
jQuery实现的点赞随机数字显示动画效果(附在线演示与demo源码下载)
2015/12/31 Javascript
微信小程序 教程之wxapp 视图容器 view
2016/10/19 Javascript
layui表格实现代码
2017/05/20 Javascript
Angularjs 根据一个select的值去设置另一个select的值方法
2018/08/13 Javascript
JavaScript简单实现动态改变HTML内容的方法示例
2018/12/25 Javascript
Vue使用.sync 实现父子组件的双向绑定数据问题
2019/04/04 Javascript
解决使用layui的时候form表单中的select等不能渲染的问题
2019/09/18 Javascript
layui之数据表格--与后台交互获取数据的方法
2019/09/29 Javascript
详解Python中 __get__和__getattr__和__getattribute__的区别
2016/06/16 Python
回调函数的意义以及python实现实例
2017/06/20 Python
详解Numpy中的广播原则/机制
2018/09/20 Python
python numpy数组的索引和切片的操作方法
2018/10/20 Python
Python常见的pandas用法demo示例
2019/03/16 Python
在Python中使用MySQL--PyMySQL的基本使用方法
2019/11/19 Python
Python scrapy增量爬取实例及实现过程解析
2019/12/24 Python
pytorch GAN伪造手写体mnist数据集方式
2020/01/10 Python
Pyinstaller加密打包应用的示例代码
2020/06/11 Python
解决Pycharm 中遇到Unresolved reference 'sklearn'的问题
2020/07/13 Python
Python 操作 MySQL数据库
2020/09/18 Python
CSS3实现滚动条动画效果代码分享
2016/08/03 HTML / CSS
丝芙兰墨西哥官网:Sephora墨西哥
2020/05/30 全球购物
记帐员岗位责任制
2014/02/08 职场文书
男方婚礼答谢词
2015/01/20 职场文书
2015年党风建设工作总结
2015/04/29 职场文书
先进基层党组织主要事迹材料
2015/11/03 职场文书