目标网站:match.yuanrenxue.com/match/13
打开开发者工具:
翻页时出现:
通过查看发现cookie多了两个变量:
这就是本次加密的参数,
还是之前的方法,先顺着调用栈找它们生成的地方却没有发现关于cookie的, 换个方向,是不是通过其他js文件来实现了加密呢?通过关键词全局查找,有相似的点进去看了最后都不是。即使清空了先前浏览器保存的cookie记录,但是cookie还是赋值了。
最后通过fiddle抓包发现,
https://match.yuanrenxue.com/match/13 请求了两次,而第一次请求就产生了sessionid和cookie:
后面带上参数就可以返回数据了。
通过python代码实现:
import requests
import re
def data(sum_data):
session = requests.session() #保持会话
session.cookies.update({"sessionid": "你的id"}) #更新sessionid
session.headers = {'user-agent': 'yuanrenxue.project'}
response = session.get('https://match.yuanrenxue.com/match/13')
cookies = re.findall("'([a-zA-Z0-9=_|])'",response.text)
yuanrenxue_cookie = ''.join(cookies)
key,value = yuanrenxue_cookie.split('=')
cookie = {key: value}
session.cookies.update(cookie) #更新yuanrenxue_cookie
for i in range(1,6):
url = 'https://match.yuanrenxue.com/api/match/13?page={}'.format(i)
response = session.get(url=url)
values = response.json()['data']
for v in values:
value = v['value']
sum_data.append(value)
print(sum(sum_data))
if __name__ == '__main__':
sum_data = []
data(sum_data)