[直通直通网址](https://match.yuanrenxue.cn/match/16)
在XHR/断点提取中添加请求api的地址,刷新网页,发现网页断在如下位置,
直接点击window.request,进入请求参数封装
观察当前停的位置,发现r.m与r.t,停在上面发现就是请求参数的生成位置,r.t是时间戳,直接生成的,那么直接考虑r.m的加密。r.m = n[e(528)](btoa, p_s)控制台中输入n[e(528)],实现btoa(p_s)。
检测btoa方法是否进行了魔改。分别在当前控制台与另外打开一个网页中测试btoa(123456),发现生成的加密结果长度的不一样,那么不能直接使用btoa方法进行加密。
接下来直接扣js代码就可以了。
- import requests,execjs
- def get_pageVal(url,js):
- sum_num = 0
- headers = {"User-Agent": "yuanrenxue.project"}
- params = js.call("main", page)
- cookies = {"sessionid": "rnhnsqvari0inuqa3qdazacnguxe210w"}
- print(params)
- res = requests.get(url, headers=headers, params=params,cookies=cookies)
- print(res.text)
- sum_num = sum([val['value'] for val in res.json()['data']])
- return sum_num
-
- if __name__ == "__main__":
- pageSum = 0
- for page in range(1,6):
- url = 'https://match.yuanrenxue.cn/api/match/16'
- js = execjs.compile(open("js蜜罐.js", "r", encoding="utf-8").read())
- pageSum += get_pageVal(url,js)
- print(pageSum)
需要js代码可以私信我