Python爬虫如何采集加密API接口_通过逆向分析JS获取签名参数

冬瑶吖_1495

冬瑶吖_1495

2026-03-27

439人浏览

原创

JS逆向最常卡在签名参数生成逻辑找不到入口,因签名多由混淆JS动态计算,需通过DevTools搜索关键词、监听属性修改、分析IIFE定位;PyExecJS已淘汰,推荐PyMiniRacer或execjs+Node;签名依赖时间戳、随机串、设备指纹等实时浏览器API,须同步执行环境;反调试需禁用breakpoint或注入屏蔽代码;密钥片段常来自请求链路而非单个JS文件。

python爬虫如何采集加密api接口_通过逆向分析js获取签名参数

JS逆向最常卡在哪儿:签名参数生成逻辑找不到入口

绝大多数加密API的签名(如 sign、token、ts)不是静态值,而是由 JS 动态计算得出。直接抓包看到的请求里有 sign=xxx,但你复制过来一用就 401 或 403——因为签名绑定了时间戳、随机数、请求体、密钥片段等,且计算过程藏在混淆 JS 里。

实操建议:

  • 别急着扣代码,先在 Chrome DevTools 的 Sources 面板里搜索关键词:sign、md5、hmac、crypto、getSign、_sign,再配合右键「Break on > Property modification」监听关键变量被赋值的时刻
  • 重点关注页面加载后立即执行的 IIFE(立即执行函数),尤其是带大量字符串拼接和 atob/eval 的那段——90% 的签名逻辑藏在那儿
  • 如果搜不到,试试禁用 JS 后刷新页面,看是否报错或缺失某个全局函数(比如 window.getSign),那它大概率就在某个未加载的 script 标签里,用 Network 面板过滤 js 请求逐个检查

Python调用浏览器环境JS:PyExecJS已淘汰,该用什么

PyExecJS 早就停止维护,Node.js 版本不兼容、中文乱码、无法处理 setTimeout 和模块导入,跑签名函数十次八次崩一次。

实操建议:

  • 优先选 PyMiniRacer(基于 V8):启动快、支持 ES6+、能跑带 import 的现代 JS,但需本地装 libv8,Windows 用户建议用预编译 wheel 安装:pip install pymini-racer --find-links https://github.com/sqreen/PyMiniRacer/releases
  • 备选 execjs + 自带 Node 运行时:确保系统 PATH 里有可用的 node,且版本 ≥14;避免用 npm 全局安装的旧版 execjs,改用 pip install execjs 并手动指定运行时:execjs.get('Node')
  • 绕过 JS 调用?不行。很多签名依赖 navigator、screen、performance.now() 等浏览器 API,纯 Python 模拟极易被服务端识别为爬虫

签名参数动态变化:时间戳、随机串、设备指纹怎么同步

你以为拿到 JS 就能复现签名?错。很多接口的 sign 依赖实时值:比如 ts 是毫秒级时间戳,nonce 是每次请求唯一的 base64 随机串,device_id 可能来自 localStorage 或 Canvas 指纹。

macOS UI 自动化技能包 —— 用 Python 控制你的 Mac
macOS UI 自动化技能包 —— 用 Python 控制你的 Mac

让 macOS 自动化像说话一样简单 —— 用代码控制你的 Mac,无需学习 AppleScript 系统要求 macOS 14+ (Sonoma) Python 3.9+ 需要开启:辅助功能 + 屏幕录制权限

下载

实操建议:

  • 不要手写时间戳:从 JS 上下文中直接取 Date.now(),否则 Python 的 int(time.time() * 1000) 和 JS 执行时刻差几毫秒,签名就失效
  • 随机串必须和 JS 里生成方式一致:比如 JS 用 Math.random().toString(36).substr(2, 10),你就不能用 Python 的 uuid.uuid4().hex[:10] 替代——字符集和长度分布不同
  • 设备指纹类参数(如 fingerprint)往往调用 canvas.getContext('2d').getImageData(...),这种没法纯 Python 模拟,得靠无头浏览器(Playwright / Selenium)先执行 JS 提取,再传给签名函数

反调试和代码保护:遇到 debugger、控制台报错就停怎么办

目标站点加了反调试,JS 里塞满 debugger、检测 console 是否被覆盖、判断 self !== top,你一断点就卡死或跳转到错误页。

实操建议:

  • 在 Sources 面板右上角点「{}」美化代码后,全局搜索 debugger,逐个右键「Never pause here」;或者勾选「Deactivate breakpoints」临时关闭所有断点
  • 屏蔽反调试检测:在 Console 里粘贴这段(仅用于分析):Object.defineProperty(window, 'debugger', { get: () => {} }); window.console = { log: () => {}, error: () => {} };,再刷新页面
  • 遇到混淆严重(如 _0x1a2b[0x3c](_0x1a2b[0x4d])),别硬读。用 Chrome 的「Blackbox script」功能把混淆文件加入黑名单,让它跳过单步,专注看你能定位到的干净函数(比如 buildSign)

真正麻烦的不是签名算法本身,而是那个藏在三重 eval 里的密钥片段——它可能来自 XHR 响应头、localStorage 某个字段,甚至上一个接口返回的加密字符串解密结果。没完整走一遍真实请求链路,光扣一个 JS 文件永远缺半块拼图。

大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!

相关专题

更多
python打包成可执行文件
python打包成可执行文件

本专题为大家带来python打包成可执行文件相关的文章,大家可以免费的下载体验。

2023.07.20

1831

4

python能做什么
python能做什么

python能做的有:可用于开发基于控制台的应用程序、多媒体部分开发、用于开发基于Web的应用程序、使用python处理数据、系统编程等等。本专题为大家提供python相关的各种文章、以及下载和课程。

2023.07.25

4884

7

format在python中的用法
format在python中的用法

Python中的format是一种字符串格式化方法,用于将变量或值插入到字符串中的占位符位置。通过format方法,我们可以动态地构建字符串,使其包含不同值。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2023.07.31

1789

3

python教程
python教程

Python已成为一门网红语言,即使是在非编程开发者当中,也掀起了一股学习的热潮。本专题为大家带来python教程的相关文章,大家可以免费体验学习。

2023.08.03

29217

23

python环境变量的配置
python环境变量的配置

Python是一种流行的编程语言,被广泛用于软件开发、数据分析和科学计算等领域。在安装Python之后,我们需要配置环境变量,以便在任何位置都能够访问Python的可执行文件。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.08.04

3487

5

python eval
python eval

eval函数是Python中一个非常强大的函数,它可以将字符串作为Python代码进行执行,实现动态编程的效果。然而,由于其潜在的安全风险和性能问题,需要谨慎使用。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.08.04

3507

5

scratch和python区别
scratch和python区别

scratch和python的区别:1、scratch是一种专为初学者设计的图形化编程语言,python是一种文本编程语言;2、scratch使用的是基于积木的编程语法,python采用更加传统的文本编程语法等等。本专题为大家提供scratch和python相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.11

1223

5

python合并两个列表
python合并两个列表

Python是一种强大的编程语言,具有许多方便的功能和工具。在Python中,有多种方法可以合并两个列表。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.08.10

616

4

python是前端还是后端
python是前端还是后端

Python属于前端也属于后端,其灵活性和丰富的生态系统使得开发人员能够在不同的领域中灵活运用。本专题为大家提供python相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.11

2723

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Uvicorn官方安装与入门手册
Uvicorn官方安装与入门手册

共0课时 | 0人学习

Python uv官方项目管理指南
Python uv官方项目管理指南

共0课时 | 0人学习

Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习