数据接口分析
数据接口为 https://match.yuanrenxue.cn/api/match/19
请求参数只需要携带 页码
cookie 只需要携带 sessionid
请求参数 和 cookie 都没有加密字段,直接用 python 请求
请求失败了
查看协议是 h2 的,再试试 httpx 请求
还是一样的结果,请求失败了
用 fiddler 重放攻击试试
重放是成功的(大概率就是检测了 tls指纹)
使用第三方库 curl_cffi 可以模拟浏览器的 tls 指纹 (在请求时指定 impersonate 关键字参数即可)
请求通过了
对应的 python 代码
from curl_cffi import requests # pip install curl_cffi
headers = {
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36",
}
cookies = {
"sessionid": "你的 sessionId",
}
def send_match12(page):
url = "https://match.yuanrenxue.cn/api/match/19"
params = {
"page": f"{page}",
}
response = requests.get(url, headers=headers, cookies=cookies, params=params, impersonate="chrome110", verify=False)
return response.json()['data']
if __name__ == '__main__':
nums = 0
for page in range(1, 6):
num_list = send_match12(page)
for num in num_list:
nums += num['value']
print('page: ', page, 'nums: ', nums)