python爬蟲 - js逆向之猿人學第十二題
阿新 • • 發佈:2021-09-15
分析
開啟介面:
翻頁,找介面:
看引數:
也是m,不多說,看到最後有【=】,先猜一波是不是base64,拿著去解碼:
前言
繼續分析,為什麼一下從第二題跳到了十二題,我也不知道為啥他這個平臺的難度不循序漸進,把這麼一個非常簡答的題放在了後面,既然簡單,那就快速解決了
分析
開啟介面:
翻頁,找介面:
看引數:
也是m,不多說,看到最後有【=】,先猜一波是不是base64,拿著去解碼:
發現就是yuanrenxue+頁碼,然後base64加密,行,果然乾脆,簡單
python實現
不多說,直接程式碼:
import requests import base64 from urllib.parse import quote 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 fetch(page): m = base64.b64encode(f'yuanrenxue{page}'.encode('utf-8')).decode() url = f'https://match.yuanrenxue.com/api/match/12?page={page}&m={quote(m)}' req = requests.get(url, headers=headers) res = req.json() data = res.get('data') data = [temp.get('value') for temp indata] print('temp', data) return data def get_answer(): sum_number = 0 for i in range(1, 6): cont = fetch(i) sum_number += sum(cont) print('答案:', sum_number) get_answer()
執行:
填入答案:
結語
這個就真的是入門級的了,寫出來呢,主要還是為了完整性而已,免得以後的朋友看到,會問為啥沒有第12題