Python逆向爬虫入门教程04: 某电影数据加密参数 token 逆向解析

本文介绍了如何使用Python进行逆向工程,针对某狗音乐、某易音乐和某千音乐的加密参数进行解析,包括signature、params&encSecKey和sign。通过抓包和JS代码中的CryptoJS库实现数据加密解密过程,并展示如何用Python配合execjs调用JS函数获取API数据。

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

前言💥

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。

前文内容💥

Python逆向爬虫入门教程01: 某狗音乐加密参数signature逆向解析
Python逆向爬虫入门教程02: 某易音乐加密参数 params & encSecKey 逆向解析
Python逆向爬虫入门教程03: 某千音乐加密参数 sign 逆向解析

数据来源分析💥

网站链接: aHR0cHM6Ly9zcGEyLnNjcmFwZS5jZW50ZXIvcGFnZS8y

电影数据包分析💥

  1. 正常流程抓包分析数据, 找到相关的数据
    在这里插入图片描述
    在这里插入图片描述
  2. 找到 token 加密位置
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    找到了token加密的位置, 直接扣代码, 扣出来之后会报错 n is not defined , n是一个标准的加密算法直接导入模块即可

JS代码💥

const CryptoJS = require('crypto-js')
function i() {
    for (var t = Math.round((new Date).getTime() / 1e3).toString(), e = arguments.length, r = new Array(e), i = 0; i < e; i++)
        r[i] = arguments[i];
    r.push(t);
    var o = CryptoJS.SHA1(r.join(",")).toString(CryptoJS.enc.Hex)
        , c = CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse([o, t].join(",")));
    return c
}

console.log(i("/api/movie", 20))
// 

Python代码获取数据💥

import requests
import execjs
f = open('demo.js', encoding='utf-8').read()
js_code = execjs.compile(f)

for offset in range(0, 91, 10):
    url = 'https://spa2.scrape.center/api/movie/'
    token = js_code.call('i', '/api/movie', offset)
    data = {
        'limit': '10',
        'offset': offset,
        'token': token,
    }
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36'
    }
    response = requests.get(url=url, params=data, headers=headers)
    json_data = response.json()
    for index in json_data['results']:
        print(index)
        dit = {
            'name': index['name'],
            'alias': index['alias'],
            'categories': ','.join(index['categories']),
            'regions': ','.join(index['regions']),
            'minute': index['minute'],
            'published_at': index['published_at'],
            'score': index['score'],
        }
        print(dit)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值