01 BROWSER LAB
发出三次请求
按顺序点击按钮,对照响应状态和请求头。
- 待练习
- 待练习
- 待练习
响应状态等待请求
请求
—响应内容
完成任意一步,这里会显示服务器的响应。
服务器 → 客户端
Set-Cookie登录成功时,服务器通过响应头发下 Cookie。
客户端 → 服务器
Cookie后续请求带上 Cookie,服务器据此识别登录状态。
02 PYTHON LAB
换用 Requests 做一遍
用 Python 重做刚才的三次请求。先自己试试,再展开参考代码。
写出你的第一个 Cookie 脚本
- 用
requests.get()直接访问/downloads,打印状态码。 - 用
requests.post()向/api/login提交表单,把账号和密码传给data=。观察响应头Set-Cookie和response.cookies。 - 把登录响应的
response.cookies传给下一次 GET 的cookies=,打印状态码和资料页的 HTML。
需要安装 Requests 时运行 python -m pip install requests。
参考代码Python 3 · Requests
response.cookies 是 RequestsCookieJar,可以直接传给下一次请求。
import requests
base_url = "https://pachong.datouboshi.com"
target = f"{base_url}/downloads"
guest = requests.get(target, timeout=10)
print("访客访问", guest.status_code)
login = requests.post(
f"{base_url}/api/login",
data={"username": "student", "password": "cookie123"},
timeout=10,
)
login.raise_for_status()
print("Set-Cookie", login.headers.get("Set-Cookie"))
print("CookieJar", type(login.cookies).__name__)
for cookie in login.cookies:
print(cookie.name, cookie.value)
page = requests.get(target, cookies=login.cookies, timeout=10)
print("携带 Cookie", page.status_code)
print(page.text)