python爬虫 - js逆向之猿人学第十三题cookie验证


前言

继续,不多说

 

分析

打开网站:

 

 

然后抓取接口:

 

 

 

查看请求参数,发现没有什么特别的,就是多了个cookie

 

 

这个cookie咋来的?搜yuanrenxue_cookie搜不到:

 

 

那还是上抓包工具吧,抓包发现了这段js:

 

 

复制出来控制台执行:

 

 这,不用多说了吧,前面复杂的都研究过了,拿到这个去请求就完了

 

 

 

python实现

import requests import execjs headers = { 'accept': 'application/json, text/javascript, */*; q=0.01', 'accept-encoding': 'gzip, deflate, br', 'accept-language': 'zh-CN,zh;q=0.9', 'cache-control': 'no-cache', 'pragma': 'no-cache', 'user-agent': 'yuanrenxue.project', 'x-requested-with': 'XMLHttpRequest', 'cookie': 'sessionid=换成你的sessionid' } def get_cookie(): url = 'https://match.yuanrenxue.com/match/13' req = requests.get(url, headers=headers) res = req.content.decode('utf-8') cont = res.replace('<script>document.cookie=','').replace(';location.href=location.pathname+location.search</script>','') req.close() cookie = execjs.eval(cont) return cookie def fetch(page,cc): url = f'https://match.yuanrenxue.com/api/match/13?page={page}' cookie = { 'cookie': f'sessionid=换成你的sessionid; {cc}' } headers.update(cookie) req = requests.get(url, headers=headers) res = req.json() data = res.get('data') data = [temp.get('value') for temp in data] print('temp', data) return data def get_answer(): cookie = get_cookie() sum_number = 0 for i in range(1, 6): cont = fetch(i,cookie) sum_number += sum(cont) print('答案:', sum_number) get_answer()

 

说明下,为哈这里获取的cookie需要我们自己拼接而不用requests自带的session对象,因为返回的是js源码,requests默认支持重定向,然后带上代理,但是涉及到js代码的,由于并不是识别js代码,所以,没法,得手动处理,唉,前面那么复杂都搞出来了,这里手动处理下无非也就多写几行代码的事

 

执行:

 

 

 

 

答案放上去:

 

 

 

over

 

结语

 

这没必要多说啥了,第二题都挺过来了,这道题那不是小case

 

 

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM