Python爬虫进阶必备 | 关于某电商网站的加密请求头 if-none-match 的分析

点击上方“咸鱼学Python”,选择“加为星标”

第一时间关注Python技术干货!

Python爬虫进阶必备 | 关于某电商网站的加密请求头 if-none-match 的分析_第1张图片

建议收藏 | 最全的 JS 逆向入门教程合集

目标网站

aHR0cHM6Ly94aWFwaS54aWFwaWJ1eS5jb20vc2VhcmNoP2tleXdvcmQ9JUU3JTk0JUI3JUU3JUFCJUE1JUU0JUI4JThBJUU4JUExJUEz

先来看看这个网站需要分析的加密是什么?

这次的网站例子来自「咸鱼的Python交流群」,一个群友遇到之后发到群里的。【图1-1】

Python爬虫进阶必备 | 关于某电商网站的加密请求头 if-none-match 的分析_第2张图片 图1-1

在这个网站搜索商品的时候会出现请求头if-none-match,之前咸鱼的很多例子都没有写到如何分析请求头的加密参数应该如何分析,所以拿这个例子大概讲讲。

定位加密

按照之前的套路,想到的第一步是搜索if-none-match,搜索的结果非常具有迷惑性。【图2-1】

Python爬虫进阶必备 | 关于某电商网站的加密请求头 if-none-match 的分析_第3张图片 图2-1

打开这个文件,直接检索if-none-match没有找到命中项,但是搜索If-None-Match,可以看到有相关的命中项的。【图2-2】

Python爬虫进阶必备 | 关于某电商网站的加密请求头 if-none-match 的分析_第4张图片 图2-2

不过咸鱼试过在这里打上断点,重新加载没有断上,初步判断不是这里生成了这个请求头参数。

所以这里尝试使用Xhr断点的方式分析。【图2-3】

图2-3

打上这个断点之后,重新加载页面。【图2-4】

图2-4

可以在这里看到t的值中就包含了我们需要的请求头if-none-match,所以可以猜测在这个 xhr 断点之前就已经完成了这个值的生成。

所以这里可以先在这个 xhr 断点前下一个断点之后暂时取消 xhr 断点。【图2-5】

图2-5

到这里之后我们直接单步调试,可以看到下面这段逻辑【图2-6】

Python爬虫进阶必备 | 关于某电商网站的加密请求头 if-none-match 的分析_第5张图片 图2-6

可以看到有写入请求头的位置了,我们分别打上断点,逐一分析是不是想要的内容。

经过分析可以看到在代码中有一段在字典中赋值的操作,并且这里也找到了加密的字段名。【图2-7】

Python爬虫进阶必备 | 关于某电商网站的加密请求头 if-none-match 的分析_第6张图片 图2-7

所以上面就是加密字段的加密位置。

分析加密

找到加密位置之后进一步分析加密的逻辑,可以看到这个加密的逻辑非常简单,结合上下文的代码可以看到这里拼接了字符串i.a + "-" + u("" + i.a + u(t) + i.a),这里反复调用的u也可以在上面找到。未知的就只有ti.a

通过分析可以看到这里的i.a就是固定的字符串55b03【图3-1】

图3-1

这里的开头和抓包中的值的开头一样。【图3-2】

图3-2

找到i.a之后,再回头看看这里的t,就是传入的参数,没有什么特殊的地方。

加密很简单直接带入 Python 实现的加密即可。【图3-3】

Python爬虫进阶必备 | 关于某电商网站的加密请求头 if-none-match 的分析_第7张图片 图3-3

抽奖赠书

在之前咸鱼争取到一个福利,和北京大学出版社的编辑朋友合作的赠书活动已经试行几期。

现在赠书的形式变更为小程序抽奖,大家只要扫描下方抽奖的小程序码即可参与。(发文三天后开奖)

Python爬虫进阶必备 | 关于某电商网站的加密请求头 if-none-match 的分析_第8张图片

感谢金主~

Love & Share 

[ 完 ]

朕已阅 

你可能感兴趣的:(Python爬虫进阶必备 | 关于某电商网站的加密请求头 if-none-match 的分析)