中國十大建筑設(shè)計(jì)事務(wù)所北京自動(dòng)seo
一、數(shù)據(jù)接口分析
主頁地址:猿人學(xué)第十三題
1、抓包
通過抓包可以發(fā)現(xiàn)數(shù)據(jù)接口是api/match/13
2、判斷是否有加密參數(shù)
- 請求參數(shù)是否加密?
無 - 請求頭是否加密?
無 - 響應(yīng)是否加密?
無 - cookie是否加密?
在“cookie”模塊中可以發(fā)現(xiàn)有一個(gè)yuanrenxue_cookie
的加密cookie
二、加密位置定位
通過查找發(fā)現(xiàn)js代碼中并沒有找到對(duì)yuanrenxue_cookie
的賦值操作,所以觀察抓包。
刪除該cookie后,重新刷新頁面,發(fā)現(xiàn)瀏覽器請求頁面發(fā)了兩次包,而且第一個(gè)包的響應(yīng)數(shù)據(jù),瀏覽器無法加載
此時(shí),可以嘗試使用python發(fā)一個(gè)請求給這個(gè)地址,觀察一下返回的響應(yīng)數(shù)據(jù)。通過打印的響應(yīng)的數(shù)據(jù)可以發(fā)現(xiàn),第一個(gè)包響應(yīng)的數(shù)據(jù)就是設(shè)置cookie的js代碼,并且就只是簡單的字符拼接起來。
源代碼:
"""
Email:912917367@qq.com
Date: 2023/8/2 9:57
"""
import reimport requestsheaders = {"authority": "match.yuanrenxue.cn","referer": "https://match.yuanrenxue.cn/match/13","user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36"
}
cookies = {"sessionid": "25yk747fkvd7oiq7oxa6wcagntbj5iso",
}
url = "https://match.yuanrenxue.cn/match/13"
response = requests.get(url, headers=headers, cookies=cookies)re_str = r"\('(.+?)'\)"
cookie = ''.join(re.findall(re_str, response.text))
cookie_value = cookie.split('=')[1]cookies['yuanrenxue_cookie'] = cookie_valueurl = 'https://match.yuanrenxue.cn/api/match/13'
num = 0
for page in range(1, 6):params = {'page': str(page)}if page >= 4:headers['user-agent'] = 'yuanrenxue.project'response = requests.get(url, params=params, cookies=cookies, headers=headers)data = response.json()['data']for item in data:num += item['value']print(num)