解题过程
通过网络抓包工具找到请求页
观察参数,我们会发现中间有一个m是被加密过的
由于请求是ajax请求直接进行xhr断点找到m被加密的位置
我们发现他的加密是使用btoa函数将页数和yuanrenxue结合加密的。而这个函数在js中是一个内置函数,是通过编码的方式进行加密,所以只需要在js文件中调用这个函数或者是使用python中的编码函数。
然后依次请求即可,这里我是用js文件和python文件的形式进行获取。
import requests
import execjs
cookies = {
"填写自己的"
}
headers = {
'authority': 'match.yuanrenxue.cn',
'accept': 'application/json, text/javascript, */*; q=0.01',
'accept-language': 'zh-CN,zh;q=0.9',
'referer': 'https://match.yuanrenxue.cn/match/12?page=5&m=eXVhbnJlbnh1ZTU=',
'sec-ch-ua': '"Google Chrome";v="119", "Chromium";v="119", "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/119.0.0.0 Safari/537.36',
'x-requested-with': 'XMLHttpRequest',
}
sum = 0
for page in range(1,6):
sign = execjs.compile(open("js文件",'r',encoding='utf--8').read()).call('main1',str(page))
params = {
'page': page,
'm': sign,
}
response = requests.get('https://match.yuanrenxue.cn/api/match/12', params=params, cookies=cookies, headers=headers)
data = response.json()["data"]
for i in data:
sum+=i["value"]
print(sum)
js代码
function main1(page){
return btoa("yuanrenxue"+page)
}
13T
直接获取源代码,进行拼接,然后相加即可
获得之后进行拼接,可以得到一个cookies
然后使用session进行更新,依次请求五页内容即可,但是这里我手动设置的cookie不知道为什么不可以用(懂得留言)
import re
import requests
session = requests.Session()
headers = {
"User-Agent": "yuanrenxue.project",
}
cookies = {
'sessionid': '自己的'
}
session.cookies.update(cookies)
url = "http://match.yuanrenxue.com/match/13"
r = session.get(url)
reg = re.compile("'([a-zA-Z0-9=|_])'")
results = reg.findall(r.text)
cookie = ''.join(results)
key,value = cookie.split('=')
session.cookies.set(key,value)
sum = 0
for i in range(1,6):
api_url =f"http://match.yuanrenxue.com/api/match/13?page={i}"
r = session.get(api_url,headers = headers)
print(session.cookies)
data = r.json()
values = data["data"]
for value in values:
sum += value["value"]
print (sum)
标签:13,12,cookies,js,session,sec,yuanrenxue,page,match From: https://blog.51cto.com/u_16426526/9143895