Python爬虫进阶之APP逆向(三)

本文介绍了如何进行APP爬虫的反编译破解,特别是针对新闻资讯类APP的加密请求参数。通过抓包分析,找到加密源码,并使用Python实现加密过程。经过验证,成功构造出正确的加密参数,能够成功GET到数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文首发于本人公众号【Python编程与实战】

最近有朋友在做新闻资讯类的 app 爬虫,也许大多数人都会认为,一个新闻资讯 app 不会有什么反爬吧。

恰恰相反,当你想爬一条新闻的时候都有请求参数加密,可见现在反爬的严重性。

分析

国际惯例先抓包,万幸抓包非常顺利,抓包结果如下:

image

抓包结果

可以看到请求头里面有加密的参数,下面我们通过反编译来破解这个参数

同时用 Python 代码来实现加密,这样我们才能愉快的爬爬爬!

反编译破解

反编译之后我们就根据请求参数来寻找加密的源码,同时需要注意下搜索的技巧。比如同一个参数,如果加上引号会极大的减少我们的工作量。

image

未加引号

image

加引号

可以看到同样一个参数,按后面的搜索结果来找加密源码,会大大减少我们的工作量。

最后在第三行找到了加密参数的出处!

image

signature加密

其中在执行某某函数的地方可以点进去,结果如下:

image

md5

md5 应该熟悉吧,剩下就是找出被加密的数据了。返回去再看,是三个数据组合的 md5!

image

udid

粗略看一下这个参数是设备号,不做校验,我们可以直接取其默认值
IMEINNNNNNNNNNNNNNN-IMSI460NNNNNNNNNNNN

再加上时间戳,和一个 key。刚好和我们抓包里面的请求头那几个参数对应上

分析完之后,当然是先用代码验证一下,如果有问题再返回回来细看。

验证

下面是构造加密参数 signature 的算法

1encrypt = f"{uuid}&&{timestamp}&&f1190aca-d08e-4041-8666-29931cd89dde"

其中 udid 是手机设备号和随机数按特定的方式的组合,timestamp 是时间戳。

1signature = hashlib.md5(encrypt.encode("utf-8")).hexdigest()

上面就是 signature 的加密 。我们用代码请求一下来验证结果。

image

能 GET 到数据,说明用 Python 转换后的加密算法是对的!

推荐阅读

Python爬虫之JS逆向入门篇

用 Python 自动获取NBA现役球员的职业生涯数据曲线
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

全村之希望

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

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

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

打赏作者

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

抵扣说明:

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

余额充值