PHP配合fiddler抓包抓取微信指数小程序数据的实现方法分析

本文实例讲述了PHP配合fiddler抓包抓取微信指数小程序数据的实现方法。分享给大家供大家参考,具体如下:

这两天研究了下微信指数这个东西。要抓取呢,按照一般思路的话,那就是使用fiddler抓取手机包,然后进行分析获取地址然后请求就可以了。

这么想你是没错,如果你果断这么做了,那就是too yang too simple了。大家可以看下,微信抓取有以下几个步骤:

1、开始登陆小程序

2、获取访问需要的令牌

3、那这令牌去获取数据

首先的难点就是小程序的登陆那一步。你得先登陆了微信之后才可以访问小程序,因为小程序是基于微信来运行的。所以,你登录的时候需要用到一个微信内部生成的js_code这个值。光是这一步就是一个深不见底的巨坑。

好吧,亿分之一概率的情况下,你获取了这个值,之后就是获取search_key这个值,还有就是一个UNIX时间戳。

完事你就可以尽情的获取你想要的数据了??????

少年,做人还是要稳重点的。。。微信有一个访问限制的系统。请求到一定的频次,会提示操作频繁的。所以你费好大劲完事之后,还是没有什么太实际的结果。

网上有一个解决方案是这样的,就是用lua语言配合触动精灵写一个操作微信的脚本,类似自动抢红包那样的。完事用这个脚本来自动输入关键词进行查询,完事再使用抓包工具获取这些请求内容。

关于使用抓包工具获取请求内容不太清楚的亲们,可以参考:https://www.jb51.net/article/177679.htm

先不说这种方案的成功率。咱们先来说说效率问题。难不成,你这样做,微信就不会限制你的请求???

还有就是学习一门语言的各种成本。。。

所以,本人使用PHP结合fiddler抓包工具,设计了一个简单,易学的抓取数据的方案。容我一一道来:

首先就是配置fiddler可以把抓取的数据保存到本地。

参考链接:https://www.jb51.net/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 socket用法总结》、《php字符串(string)用法总结》、《PHP数学运算技巧总结》、《php面向对象程序设计入门教程》、《PHP数组(Array)操作技巧大全》、《PHP数据结构与算法教程》、《php程序设计算法总结》及《PHP网络编程技巧总结》

希望本文所述对大家PHP程序设计有所帮助。

(0)

相关推荐

  • php使用curl代理实现抓取数据的方法

    本文实例讲述了php使用curl代理实现抓取数据的方法.分享给大家供大家参考,具体如下: <?php define ( 'IS_PROXY', true ); //是否启用代理 function async_get_url($url_array, $wait_usec = 0) { if (!is_array($url_array)) return false; $wait_usec = intval($wait_usec); $data = array(); $handle = array()

  • Python如何爬取微信公众号文章和评论(基于 Fiddler 抓包分析)

    背景说明 感觉微信公众号算得是比较难爬的平台之一,不过一番折腾之后还是小有收获的.没有用Scrapy(估计爬太快也有反爬限制),但后面会开始整理写一些实战出来.简单介绍下本次的开发环境: python3 requests psycopg2 (操作postgres数据库) 抓包分析 本次实战对抓取的公众号没有限制,但不同公众号每次抓取之前都要进行分析.打开Fiddler,将手机配置好相关代理,为避免干扰过多,这里给Fiddler加个过滤规则,只需要指定微信域名mp.weixin.qq.com就好:

  • PHP中4种常用的抓取网络数据方法

    本小节的名称为 fsockopen,curl与file_get_contents,具体是探讨这三种方式进行网络数据输入输出的一些汇总.关于 fsockopen 前面已经谈了不少,下面开始转入其它.这里先简单罗列一下一些常见的抓取网络数据的一些方法. 1. 用 file_get_contents 以 get 方式获取内容: $url = 'http://localhost/test2.php'; $html = file_get_contents($url); echo $html; 2. 用fo

  • 抓包工具Fiddler的使用方法详解(Fiddler中文教程)

    Fiddler简介 Fiddler(中文名称:小提琴)是一个HTTP的调试代理,以代理服务器的方式,监听系统的Http网络数据流动,Fiddler可以也可以让你检查所有的HTTP通讯,设置断点,以及Fiddle所有的"进出"的数据(我一般用来抓包) Fiddler还包含一个简单却功能强大的基于JScript .NET事件脚本子系统,它可以支持众多的HTTP调试任务. Fiddler官方网站提供了大量的帮助文档和视频教程,这是学习Fiddler的最好资料 Fiddler_官方网站 Fid

  • PHP+fiddler抓包采集微信文章阅读数点赞数的思路详解

    简介: 分析接口知道要获取文章阅读数和点赞数必须有key和uin这两个关键参数,不同公众号key不一样(据说有万能微信key,不懂怎么搞到),同一个公众号key大概半小时会过期 提交链接获取文章阅读量api 思路: 1.将客户端请求阅读量接口的请求拦截转发到自己服务器,这样就可以获取到key ,用__biz关联缓存半小时 2.提交文章链接进行查询时,服务器从文章链接里获取__biz,查询是否缓存了当前公众号对应的key,有的话进行第3步,没有进行第4步. 3.curl请求https://mp.w

  • fiddler抓包小技巧之自动保存抓包数据的实现方法分析【可根据需求过滤】

    本文实例讲述了fiddler抓包小技巧之自动保存抓包数据的实现方法.分享给大家供大家参考,具体如下: 说起这个抓包啊,大家都不陌生.辣么,将自己抓获的数据保存下来进行数据分析就是个问题了.一般情况下,这个软件就是操作软件的,设置自动保存的话,只能依靠软件自身来设置.但是呢,这个fiddler不得不让我们又一次见识到了它的强大.废话不多说,咱们直接来看配置哈. 首先: 然后选择: 或者你可以直接按Ctrl+R这个组合键,就可以打开CustomRules.js这个文件了.当然如果有别的提示的话,你就

  • Fiddler如何抓取手机APP数据包

    Fiddler,这个是所有软件开发者必备神器!这款工具不仅可以抓取PC上开发web时候的数据包,而且可以抓取移动端(Android,Iphone,WindowPhone等都可以). 第一步:下载神器Fiddler,下载链接: http://w.x.baidu.com/alading/anquan_soft_down_ub/10963 下载完成之后,傻瓜式的安装一下了! 第二步:设置Fiddler 打开Fiddler, Tools-> Fiddler Options (配置完后记得要重启Fiddl

  • Fiddler实现手机抓包之小白入门必看

    Fiddler是一个轻量级的http抓包工具,且有良好的用户界面,实用强大易上手.通过设置代理接受处理所有的http请求和响应,可以很轻松的对手机上的安卓应用进行抓包. 电脑最好是笔记本,这样能和手机保持统一局域网内:其他不多说,直接说步骤了. 一.对PC(笔记本)参数进行配置    1. 配置fiddler允许监听到https(fiddler默认只抓取http格式的) 打开Fiddler菜单项Tools->TelerikFiddler Options->HTTPS, 勾选CaptureHTT

  • PHP的cURL库功能简介 抓取网页、POST数据及其他

    无论是你想从从一个链接上取部分数据,或是取一个XML文件并把其导入数据库,那怕就是简单的获取网页内容,反应釜cURL 是一个功能强大的PHP库.本文主要讲述如果使用这个PHP库. 启用 cURL 设置 首先,我们得先要确定我们的PHP是否开启了这个库,你可以通过使用php_info()函数来得到这一信息. 复制代码 代码如下: <?php phpinfo(); ?> 如果你可以在网页上看到下面的输出,那么表示cURL库已被开启. 如果你看到的话,那么你需要设置你的PHP并开启这个库.如果你是在

  • PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)

    通过curl_setopt()函数可以方便快捷的抓取网页(采集很方便大笑),curl_setopt 是PHP的一个扩展库      使用条件:需要在php.ini 中配置开启.(PHP 4 >= 4.0.2)        //取消下面的注释 extension=php_curl.dll 在Linux下面,需要重新编译PHP了,编译时,你需要打开编译参数--在configure命令上加上"–with-curl" 参数. 1. 一个抓取网页的简单案例: [php] view pla

  • 利用Fiddler对手机进行抓包的实现方法

    用Fiddler对手机进行抓包的设置如下: 1.处于同一个局域网下 2.PC端,打开Fiddler,设置: (1)打开Tools-Options (2)设置HTTPS (3)设置Connections (4)查看PC的局域网IP地址并记住 (5)重启Fiddler 3.手机端设置 (1)长按wifi图标进入wifi列表 (2)长按当前使用的wifi进入修改状态 (3)勾选"显示高级选项" (4)代理-选择"手动" (5)主机名填写PC的局域网IP (6)端口填写88

随机推荐