大猿-大猿人-第6题 cookie保持

43 阅读1分钟

cookie分两种,一种是浏览器驱动js生成,另一种是通过服务器返回。

两种cookie流程逆向策略
JS代码生成cookieJS代码执行 → 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)
```
```