某红书小程序逆向流程

这周公司稳定运行的某红书搜索接口突然失效了,作为公司唯二的爬虫,公司由我负责解决,一开始我听到这个消息心情是复杂的,好的是失效的不是网页,网页每次稍微变动都要排查好久,忧的是老王并没有多少对小程序的经验,尤其是这种大ip。

不管什么心情都要去解决这个问题,毕竟吃人的饭就要看人脸色。

首先打开我心爱的fidller进行抓包,先看看怎么个回事。

分析了几个数据包,发现并没有有效信息,虽然有加密数据但是和公司之前接口相去甚远。

不慌,打开我的得力助手“雷神模拟器”把"内置系统证书,算法助手,drony,小黄鸟,lsp"全给安排上,能过掉这个组合的程序天下少有。

打开我fiddler满怀期待的准备玩弄红书的小链接,不争气的它却第一次让我失望,跟之前抓的包一摸一样。

只能上网借鉴一下别人有什么妙招,这是一个工具出现在我眼前"WeChatOpenDevTools-Python-main"虽然看不懂什么意思,但我认识pyhon,open和wechat,python打开微信,嘿嘿嘿。

https://github.com/JaveleyQAQ/WeChatOpenDevTools-Python

使用也很简单,直接python main.py -x就行,不过要先装好依赖。

启动后直接打开微信小程序就会有一个类似浏览器F12的调试台

最后结果依然是抓不到包,继续去网上借鉴,最后在看雪大佬的只言片语中发现,小程序如果使用云开发可能就会这样,抓包是走不通了,只能继续找别的方法。

这时看到可以还原小程序项目文件实现逆向,终于进入正题了,哈哈哈哈。

先找到自己电脑微信息存储位置,然后打开小程序文件夹,如果有很多小程序hash文件可以全部删掉再打开。

下载wechatMiniAppReverse-main工具对文件进行解密(需要先解密再还原),有的教程说用UnpackMiniApp.exe,不过我用就显示找不到id。

pc_wxapkg_decrypt.exe -wxid 微信小程序id -in 要解密的wxapkg路径 -out 解密后的路径

解密后拿着生成的文件去使用wxappUnpacker还原就行,具体怎么配置使用可以找教程,太多了。

还原后直接导入微信开发者工具,不过由于不可能完全还原,所以调试是调试不了的(把报错全部手动解决掉就可以调试),只能搜一些加密参数特征。

简单搜了一些特征发现一些有价值的信息,但是帮助不大,只能确定加密没有大变,甚至根本没变。

原来的x-sign其实就是一个加盐的md5加密,Authorization是根据用户信息生成的唯一凭证。

不甘心的我继续在网上借鉴,最终找到一串神奇的代码,这老哥不知道怎么学的,这样写get请求,不过也恰恰是这样,才规避掉这次改动。

其实跟原来相比就去掉了一个prependNoteIds参数,原来后台可能加着这个参数,现在不加了,由于公司产权问题代码就不放了,跟这个差不多。

import requests
import urllib3


class _xhs(object):
    def __init__(self):
        urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)

        self.url = 'https://www.xiaohongshu.com/fe_api/burdock/weixin/v2/search/notes?'
        self.key_dict = {
            '1': 'Xd44b23783ad8f18c2e41c045a0cda867',
            '2': 'Xe8b3f71b7585c080e9ca55e7d1b034e0',
            '3': 'X2351ff0514bb05145e8171975fe1d96d',
            '4': 'X2422fd5312cf50b12c722e1d63b2f9aa',
            '5': 'X44d5cf63fb658c609be10404b77291d5',
        }



    def get_detail_url(self):
        for key, value in self.key_dict.items():
            headers = {
                'Host': 'www.xiaohongshu.com',
                'Connection': 'keep-alive',
                'Authorization': 'wxmp.221e2c43-41e3-401a-8g53-cf3cbd5ab556',
                'Device-Fingerprint': 'WHJMrwNw1k/Ff2NfArpikjizTJkAdQe2Y1P0AQTa74gJcSlBSWoMjTXYq+VUDRGsE9VCMBXrfD5W9YT2GqNMbnISuxoWerClbdCW1tldyDzmauSxIJm5Txg==1487582755342',
                'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36 MicroMessenger/7.0.9.501 NetType/WIFI MiniProgramEnv/Windows WindowsWechat',
                'X-Sign': value,
                'content-type': 'application/json',
                'Referer': 'https://servicewechat.com/wxffc08ac7df482a27/378/page-frame.html',
                'Accept-Encoding': 'gzip, deflate, br',
            }
            params = {
                'keyword': '揭阳周边游',
                'sortBy': 'general',
                'page': key,
                'pageSize': '20',
                'needGifCover': 'true',
            }
            res = requests.get(self.url, headers=headers, params=params, verify=False).text
            print(self.url)
            print(headers)
            print(res)




if __name__ == '__main__':
    xhs = _xhs()
    xhs.get_detail_url()
#加密参数
'/fe_api/burdock/weixin/v2/search/notes?keyword=%E6%8F%AD%E9%98%B3%E5%91%A8%E8%BE%B9%E6%B8%B8&sortBy=general&page=1&pageSize=20&needGifCover=trueWSUDD'

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值