cookie分两种,一种是浏览器驱动js生成,另一种是通过服务器返回。
| 两种cookie | 流程 | 逆向策略 |
|---|---|---|
| JS代码生成cookie | JS代码执行 → document.cookie操作 → 浏览器存储 → 后续请求自动携带 | 使用调试工具分析Cookie生成代码,可能需要重写生成函数 |
| 服务器返回cookie | 客户端请求 → 服务器响应(Set-Cookie) → 浏览器存储 → 后续请求自动携带 | 重点分析登录流程和会话保持机制 |
import time
import requests
session = requests.session()
headers = {
"accept": "application/json, text/javascript, */*; q=0.01",
"accept-language": "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6",
"cache-control": "no-cache",
"content-type": "application/x-www-form-urlencoded; charset=UTF-8",
"origin": "https://www.python-spider.com",
"pragma": "no-cache",
"priority": "u=1, i",
"referer": "https://www.python-spider.com/challenge/6",
"sec-ch-ua": ""Not)A;Brand";v="8", "Chromium";v="138", "Microsoft Edge";v="138"",
"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/138.0.0.0 Safari/537.36 Edg/138.0.0.0",
"x-requested-with": "XMLHttpRequest"
}
cookies = {
"sessionid": "pltyfn78h1vfwpmo21us907a8zi4e9in",
"sign": "toclbznuag"
}
url = "https://www.python-spider.com/api/challenge6"
data = {
"page": str(1)
}
sum = 0
response = session.post(url, headers=headers,cookies=cookies,data=data)
for n in (response.json()['data']):
sum += int(n['value'])
for i in range(2,101):
data = {
"page": str(i)
}
response = session.post(url, data=data)
print(i,response.text)
# if i % 10 == 0:
# time.sleep(5)
for n in (response.json()['data']):
sum += int(n['value'])
print(sum)
```
```