在 Python 开发中,Cookie 的应用主要分为两大场景:爬虫(模拟浏览器获取 / 携带 Cookie) 和Web 开发(给客户端设置 Cookie)。
一、爬虫场景:用 requests 库获取 / 携带 Cookie
爬虫中操作 Cookie 的核心需求是:模拟用户登录状态(如爬取需要登录的网站数据)、维持会话连接。requests 库是 Python 爬虫的首选工具,处理 Cookie 简洁高效。
1. 前置准备
先安装 requests 库(若未安装):
pip install requests
2. 场景 1:获取网站返回的 Cookie
访问网站时,服务器会自动返回 Cookie,用 requests 可直接提取:
import requests
# 目标网站(以百度为例)
url = "https://www.baidu.com"
# 发送请求,获取响应
response = requests.get(url)
# 方式 1:直接获取响应中的 Cookie(RequestsCookieJar 对象,类似字典)
cookies = response.cookies
print("响应 Cookie(RequestsCookieJar 格式):")
print(cookies)
# 方式 2:转为字典格式(更易读取)
cookie_dict = requests.utils.dict_from_cookiejar(cookies)
print("\nCookie(字典格式):")
for key, value in cookie_dict.items():
print(f"{key}: {value}")
# 方式 3:获取响应头中的 Set-Cookie(原始格式)
print("\n响应头中的 Set-Cookie:")
print(response.headers.get("Set-Cookie"))
3. 场景 2:携带 Cookie 发送请求(模拟登录状态)
很多网站需要登录后才能访问核心数据,此时需先登录获取 Cookie,再携带 Cookie 请求目标页面。
示例:模拟登录某测试网站(以 GitHub 简化示例)
import requests
# 1. 登录接口(实际开发中替换为目标网站的登录 URL)
login_url = "https://github.com/session"
# 登录参数(需根据网站表单字段调整,可通过 F12 抓包获取)
login_data = {
"login": ,
: ,
:
}
session = requests.Session()
response = session.post(login_url, data=login_data)
profile_url =
profile_response = session.get(profile_url)
profile_response.text:
()
()
key, value session.cookies.get_dict().items():
()
:
()

