news 2026/3/14 8:18:24

23-MD5:淘宝

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
23-MD5:淘宝

案例网址:淘宝

找接口+加密参数

这次接口不在xhr中了,我们翻页后需要搜索一下找到接口,然后找加密参数:

复制bash转python代码测试看看:

这时候就要找一下cookie是动态生成的还是服务器返回的,需不需要逆向,先清除cookie刷新网页:

搜索cookie值:

两个都是服务器返回的,所以无需逆向

找加密位置+逻辑复现

直接搜索sign:即可:

打上断点后开始分析加密方法和参数:

参数基本都是固定的或者一眼看出时间戳(c.data一会儿会说明),开始复现:

varCryptoJS=require('crypto-js');varappKey="12574478",// 你自己的appKeytoken="xxx"// 自己的token,在cookie中,cookie不变token不变functionsignEnc(page){vardata=`{"appId":"30986","params":"{\\"pageNum\\":${page},\\"pageSize\\":25,\\"_forceRefresh\\":1768786949730,\\"frontAbId\\":\\"427503\\",\\"isFirstPage\\":true,\\"myCna\\":\\"QezYITrchGsCAW8ZBchq4zpB\\"}"}`,// "{"appId":"30986","params":"{\"pageNum\":0,\"pageSize\":25,\"_forceRefresh\":1768786949730,\"frontAbId\":\"427503\",\"isFirstPage\":true,\"myCna\":\"QezYITrchGsCAW8ZBchq4zpB\"}"}"timeStamp=(newDate).getTime(),encData=token+"&"+timeStamp+"&"+appKey+"&"+datavarsign=CryptoJS.MD5(encData).toString();return{sign:sign,timeStamp:timeStamp}}console.log(signEnc(0));

data讲解:

这里data应刷新后取首页的data:

其他页会带很多数字,而且次次不同:

这些数字应该是商品信息啥的

py调用

importrequestsimportexecjsimportosclassJSExecutor:def__init__(self,js_file_path):ifnot os.path.exists(js_file_path):print(f'js代码不存在:{js_file_path}')withopen(js_file_path,'r',encoding='utf-8')asf:self.js_code=f.read()# execjs.compile()将JavaScript 代码编译为一个可执行的对象 self.js_code=execjs.compile(self.js_code)defcall(self,func_name,*args):"""封装python对js代码中函数的调用:param func_name:js代码中的函数名:param args:js代码中函数所需的参数:return:js中函数运行后的结果"""returnself.js_code.call(func_name,*args)defget_data(sign,t,pageNum):cookies={xxx}headers={'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36 Edg/143.0.0.0',}params={'jsv':'2.7.2','appKey':'12574478','t':str(t),'sign':sign,'v':'2.0','timeout':'3000','dataType':'jsonp','valueType':'original','jsonpIncPrefix':'pcrecommend','ttid':'1@tbwang_windows_1.0.0#pc','api':'mtop.relationrecommend.WirelessRecommend.recommend','type':'originaljsonp','callback':'mtopjsonppcrecommend25','data':f'{{"appId":"30986","params":"{{\\"pageNum\\":{pageNum},\\"pageSize\\":25,\\"_forceRefresh\\":1768786949730,\\"frontAbId\\":\\"427503\\",\\"isFirstPage\\":true,\\"myCna\\":\\"QezYITrchGsCAW8ZBchq4zpB\\"}}"}}'}response=requests.get('https://h5api.m.taobao.com/h5/mtop.relationrecommend.wirelessrecommend.recommend/2.0/',params=params,cookies=cookies,headers=headers,)returnresponse.textif__name__=='__main__':js_executor=JSExecutor('23.js')forpageinrange(1,4):js_params=js_executor.call('signEnc',page)print(get_data(js_params['sign'],js_params['timeStamp'],page))

result:

小结

本文也是比较简单,适合练手,就是data那里需要注意,算是个小坑吧,慢慢试试就出来了,如有问题请及时提出,加油加油

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/14 7:00:51

大模型知识增强指南:RAG与微调的优劣势对比与场景选择

文章对比分析了两种大模型知识增强方法:RAG通过检索用户文档库让模型基于特定资料作答,解决知识接入问题;微调则在模型内部写入专业知识,增强垂直领域能力并固化行为。RAG成本低、操作简单,适合个人用户;微…

作者头像 李华
网站建设 2026/3/13 10:37:59

A2A 协议的工作流程是怎样的?

A2A(Agent-to-Agent)协议是一种用于智能代理之间通信和协作的协议。以下是A2A协议的典型工作流程: A2A协议工作流程 1. 初始化阶段 代理注册:各个代理向A2A注册中心注册自己的能力、服务类型和通信地址能力发现:代理查…

作者头像 李华
网站建设 2026/3/14 7:42:51

大模型训练三阶段完全指南:从预训练到对齐,一文掌握GPT/LLaMA等模型训练流程(建议收藏)

大模型训练分为预训练、微调和对齐三阶段。预训练阶段使用TB级数据学习通用语言能力;微调阶段通过GB级高质量数据增强特定任务能力;对齐阶段确保输出符合人类价值观,采用3H原则。这三个阶段从知识基础、任务适配到价值对齐,共同构…

作者头像 李华
网站建设 2026/3/13 20:38:10

从传统AI到 Agentic AI:教育技术中,提示工程架构师的转型之路!

从传统AI到Agentic AI:教育技术中,提示工程架构师的转型之路 一、引言:当“机械导师”遇到“主动学习者” 你是否见过这样的场景? 一个学生用某款英语背单词APP,连续3天收到“abandon”的复习提醒——哪怕他早就把这…

作者头像 李华
网站建设 2026/3/14 2:23:30

论文开题不再愁!书匠策AI:你的学术“开题神器”

在学术研究的漫漫征途中,论文开题报告就像是一座灯塔,为我们指引着研究方向。它不仅是对研究项目的初步规划,更是向评审专家展示研究价值与可行性的重要窗口。然而,对于许多研究者,尤其是初涉学术领域的新手来说&#…

作者头像 李华
网站建设 2026/3/13 20:02:19

python + vue 健康饮食食材烹饪管理系统vue3

目录健康饮食食材烹饪管理系统(Python Vue3)摘要系统概述技术栈核心功能扩展性应用场景项目技术支持可定制开发之功能亮点源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作健康饮食食材烹饪管理系统(Pytho…

作者头像 李华