PHP配合fiddler抓包抓取微信指数小程序的数据

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

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

    1、开始登陆小程序

    2、获取访问需要的令牌

    3、那这令牌去获取数据

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

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

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

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

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

    关于使用抓包工具获取请求内容不太清楚的亲们,可以参考:https://blog.csdn.net/luyaran/article/details/80568789

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

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

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

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

    参考链接:https://blog.csdn.net/luyaran/article/details/80568789

    这是用来获取访问令牌的,核心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保存包到本地文件。还有就是需要手机访问小程序之后程序才能运行成功。比较麻烦。

    想了解更详细的内容请与我私信。如果感觉不错得话,请多多点赞支持哦。。。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
Fiddler是一款非常流行的网络调试工具,主要用于HTTP(S)协议的数据抓包分析。然而,微信小程序由于其特殊的运行环境和安全机制,直接通过Fiddler抓取数据会比较复杂,因为微信小程序通常是通过Webview嵌入到H5页面中,并且通常使用HTTPS连接。 以下是抓包微信小程序的大概步骤: 1. **安装Fiddler**:首先你需要在电脑上安装Fiddler,并确保它能捕获HTTPS流量。如果遇到HTTPS拦截问题,可能需要配置证书(如安装Fiddler Root Certificate)。 2. **禁用WebView的安全沙箱**:微信小程序默认会对网络请求进行安全检查,阻止来自非信任源的数据。要抓取内容,可能需要在开发者工具中开启调试模式("设置 > 开发者选项 > JSDevTool"),但这并不意味着可以在生产环境中这样做。 3. **在微信开发者工具中**:打开微信开发者工具,选择对应的微信小程序项目。在模拟器或真机环境下,尝试触发你想抓包的功能。 4. **尝试访问**:虽然上述步骤可能会让你能够看到部分请求,但微信小程序经常会加密敏感信息或使用API签名验证,使得数据难以直接获取。你可能只能看到明文请求头和URL,而无法查看完整的响应体。 5. **特殊处理**:对于一些敏感数据微信可能使用了反爬技术,如频率限制、加密传输等。这时你可能需要使用其他工具(如Charles)或者借助插件辅助(例如“wxssd”这样的微信小程序插件)才能获取完整信息。 6. **注意隐私政策**:在实际操作中,抓包微信小程序需遵守相关的法律法规,尤其是涉及用户隐私的部分,以免触犯平台规则和侵犯用户权益。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

luyaran

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值