(base64解码)地址:aHR0cHM6Ly9zdHUudHVsaW5ncHl0b24uY24vcHJvYmxlbS1kZXRhaWwvNC8=
请求接口带有加密参数:
全局搜索Sign,找到参数生成位置
一目了然,知道参数是怎么构造生成的
调试代码
测试验证思路是否正确
时间:
timestamp = int(time.time() * 1000)
sign:
md5 = hashlib.md5()
data = "tuling" + str(timestamp) + str(pageNumber)
md5.update(data.encode('utf-8'))
sign = md5.hexdigest()
完整的python代码:
import requests
import time
import hashlib
base_url = 'https://stu.tulingpyton.cn/api/problem-detail/4/data/'
sum = 0
for pageNumber in range(1, 21):
timestamp = int(time.time() * 1000)
md5 = hashlib.md5()
data = "tuling" + str(timestamp) + str(pageNumber)
md5.update(data.encode('utf-8'))
sign = md5.hexdigest()
headers = {
"authority": "stu.tulingpyton.cn",
"method": "GET",
"scheme": "https",
"accept": "*/*",
"accept-encoding": "gzip, deflate, br, zstd",
"accept-language": "zh-CN,zh;q=0.9",
"cache-control": "no-cache",
"cookie": "csrftoken=bUQnx7WcbwsloLWvzCkVFYFqSTDCDN91; sessionid=ri4hj62n9kmc222rtgi60ou2jdryevv7; Hm_lvt_b5d072258d61ab3cd6a9d485aac7f183=1739864249",
"pragma": "no-cache",
"priority": "u=1, i",
"referer": "https://stu.tulingpyton.cn/problem-detail/4/",
"sec-ch-ua": "\"Google Chrome\";v=\"131\", \"Chromium\";v=\"131\", \"Not_A Brand\";v=\"24\"",
"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/131.0.0.0 Safari/537.36",
}
params = {
"page": pageNumber,
"sign": sign,
"_ts": timestamp
}
res = requests.get(base_url, params=params, headers=headers)
json_data = res.json()
print(json_data)
for j in json_data['current_array']:
sum += j
print(sum)
运行结果: