js逆向入门图灵爬虫练习平台 第四题学习

(base64解码)地址:aHR0cHM6Ly9zdHUudHVsaW5ncHl0b24uY24vcHJvYmxlbS1kZXRhaWwvNC8=

先找到请求接口带有加密参数:

全局搜索Sign,找到参数生成位置

看到这就一目了然塞,知道参数是怎么构造生成的,不知道这段 JavaScript 代码没关系看下面ai解释

我们来调试一下代码

测试验证自己的猜想思路是否正确

验证结果对比:

时间戳:

python 复制代码
import time
new_date=int(time.time()*1000)

sign:

python 复制代码
import hashlib
md5=hashlib.md5()
data="tuling"+str(new_date)+str(1)
md5.update(data.encode('utf-8'))
sign=md5.hexdigest()
print(sign)

下面是完整的python代码:

python 复制代码
import requests
import time
import hashlib
import random


headers = {
    'accept': '*/*',
    'accept-language': 'zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7,zh-TW;q=0.6',
    'cache-control': 'no-cache',
    'cookie': #添加自己的cookie,
    'pragma': 'no-cache',
    'priority': 'u=1, i',
    'referer': 'https://stu.tulingpyton.cn/problem-detail/4/',
    'sec-ch-ua': '"Chromium";v="124", "Google Chrome";v="124", "Not-A.Brand";v="99"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'sec-fetch-dest': 'empty',
    'sec-fetch-mode': 'cors',
    'sec-fetch-site': 'same-origin',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36',
}

sum=0
for i in range(1,21):
    new_date=int(time.time()*1000)

    md5=hashlib.md5()

    data="tuling"+str(new_date)+str(i)
    md5.update(data.encode('utf-8'))
    sign=md5.hexdigest()
    print(sign)
    params = {
        'page': i,
        'sign': sign,
        '_ts': new_date,
    }

    response = requests.get('https://stu.tulingpyton.cn/api/problem-detail/4/data/', params=params,  headers=headers)
    print(response.json())
    for li in response.json()['current_array']:
        sum+=li
    time.sleep(random.randint(1,3))
print(sum)

运行结果:

哈哈哈收工

相关推荐
ocean21033 小时前
2025-2026年C++专题大厂面试高频问题
开发语言·c++·面试
IMPYLH3 小时前
HTML 的 <select> 元素
前端·html
爱丶不疚3 小时前
Electron:Module 与 Service 的职责边界与加载时序编排
前端·electron·nestjs
白远山3 小时前
健身场馆无人自动化系统实战指南:从架构设计到部署全流程解析
java·开发语言·架构·需求分析
三十而立洋3 小时前
深入浅出 Nginx:从核心原理到实战指南
前端·前端工程化
右耳朵猫AI3 小时前
Node.js周刊2026W37 | 三处进程崩溃修复、fs 内置 glob、Workers 模块注册表、Vitest 5.0
javascript·后端·node.js
giszhc3 小时前
腾讯地图瓦片接入方案:一个 Bun 代理,让 Mapbox / Leaflet / OpenLayers 通用
前端·后端
摸鱼仙人~3 小时前
Vue 应用完整启动链路
前端·vue.js·软件工程
前端·柱子3 小时前
Chaikin‘s Corner Cutting 算法 应用canvas绘制平滑的曲线
前端·html
爱丶不疚3 小时前
Electron: 缓存机制有哪些?能控制的又有哪些
前端·electron·v8