专栏首页Python编程与实战爬虫进阶之APP逆向(三)

爬虫进阶之APP逆向(三)

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

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

分析

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

抓包结果

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

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

反编译破解

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

未加引号

加引号

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

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

signature加密

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

md5

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

udid

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

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

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

验证

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

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

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

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

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

结果

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

本文分享自微信公众号 - Python编程与实战(pthon1024)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-06-01

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python做量化|使用AlgoPlus接收期货实时行情

    金融领域也是 Python 的重要方向之一,我知道有一些读者就是冲着做量化交易才接触 Python 的。今天给大家分享一个使用 Python 的期货交易API。

    Crossin先生
  • MYSQL 主从不一致怎么办?

    MYSQL 中主从不一致是很可能发生的,而怎么能发现不一致则并不是一个很简单的问题。尤其对数据量较大的情况下。废话说多无益,看下面的例子:

    AustinDatabases
  • 使用python来实现报表自动化

    安装xlwt :在终端中输入pip install xlwt或者easy_install xlwt

    数据森麟
  • GitHub超3k星!从Python代码到APP只需要一个小工具~

    机器学习开发者想要打造一款 App 有多难?事实上,你只需要会 Python 代码就可以了,剩下的工作都可以交给一个工具。近日,Streamlit 联合创始人 ...

    数据派THU
  • 如何使用简单的Python为数据科学家编写Web应用程序?

    可以转到本地URL:localhost:8501在浏览器中,查看Streamlit应用程序的运行情况。开发人员提供了一些不错的演示,请花点时间并感觉一下工具的功...

    代码医生工作室
  • 用Python在工作中“偷懒”

    这类工作大部分是重复性工作,但占据了你比较多的时间,有时候用蛮力做的事情,可以有更省时省力的办法。

    数据森麟
  • 【Pytorch】谈谈我在PyTorch踩过的12坑

    1. nn.Module.cuda() 和 Tensor.cuda() 的作用效果差异

    zenRRan
  • Flask 视图函数的URL路由设置说明

    相对于Django的URL路由设置来说,Flask配置的方式有较多的不同。 下面来根据几个示例,来看看有什么地方不同。

    Devops海洋的渔夫
  • 不到70行Python代码,轻松玩转RFM用户分析模型(附案例数据和代码)

    本文从RFM模型概念入手,结合实际案例,详解Python实现模型的每一步操作,并提供案例同款源数据,以供同学们知行合一。

    CDA数据分析师
  • 用 Python 监控知乎和微博的热门话题

    本文来自编程教室的一名学员 TED 同学,这是他目前正在参与的项目开发小组中的一部分工作,涉及到一些常用的爬虫方法。今天拿出来跟大家分享一下。

    Crossin先生

扫码关注云+社区

领取腾讯云代金券