简单的js加密
其中的m为js加密参数
其中的m是根据传递的参数和页码进行base64加密的
代码如下
# 开发时间 2021/9/6 10:40
import requests
import base64
def function():
session = requests.session()
headers = {
'referer': 'https://match.yuanrenxue.com/match/12',
'sec-ch-ua': '"Microsoft Edge";v="93", " Not;A Brand";v="99", "Chromium";v="93"',
'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/93.0.4577.63 Safari/537.36 Edg/93.0.961.38',
'x-requested-with': 'XMLHttpRequest',
}
session.headers = headers
base_url = 'https://match.yuanrenxue.com/api/match/12?'# 基础的URL
count = 0# 用于计算总数
for i in range(1, 6):
param = {'m': base64.b64encode('yuanrenxue{}'.format(i).encode()).decode('utf-8'),# 格努传递的参数进行base64加密
'page': i}
if i <= 3:# 前三页不用进行cookie和ua的设置
response = session.get(url=base_url, params=param)
for data in response.json()['data']:
count += data['value']
else:# 4,5页要进行ua和cookie的设置
session.headers['user-agent'] ='yuanrenxue.project'
session.headers['cookie'] = 'sessionid'
response = session.get(url=base_url, params=param )
for data in response.json()['data']:
count += data['value']
print('总数为',count)
if __name__ == '__main__':
function()