python playwright携带cookies
时间: 2025-05-18 14:07:55 浏览: 14
### 如何在 Python Playwright 中使用或携带 Cookies
Playwright 是一种强大的工具,用于自动化浏览器行为并执行测试任务。它支持多种功能,其中包括管理 Cookie 的能力。以下是关于如何在 Python Playwright 中设置、获取以及保存 Cookies 的详细介绍。
#### 设置 Cookies
可以通过 `context.add_cookies()` 方法来向当前的浏览上下文中添加指定的 Cookies。此方法接受一个包含多个字典对象的列表作为参数,其中每个字典都描述了一个特定的 Cookie[^1]。
```python
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch(headless=False)
context = browser.new_context()
# 添加自定义Cookie到Context中
context.add_cookies([
{
'name': 'example_cookie',
'value': 'cookie_value',
'url': 'https://www.example.com', # 或者domain和path字段也可以替代URL
'expires': -1, # 可选:过期时间戳,默认-1表示会话结束时删除
'httpOnly': False,
'secure': True,
'sameSite': 'None'
}
])
page = context.new_page()
page.goto('https://www.example.com')
```
#### 获取现有 Cookies
如果需要从现有的页面或者 Context 中提取所有的 Cookies,则可以调用 `page.context.cookies()` 函数。这将返回一个由所有可用 Cookies 组成的数组[^2]。
```python
current_cookies = page.context.cookies()
print(current_cookies)
```
#### 存储与加载 Cookies 文件
为了实现持久化存储以便后续脚本可以直接恢复之前的登录状态或其他依赖于Cookies的信息,可先导出这些数据至文件再读取回来应用。
##### 导出 Cookies 到 JSON 文件
```python
import json
def save_cookies(context, filepath='cookies.json'):
cookies = context.cookies()
with open(filepath, 'w') as f:
json.dump(cookies, f)
save_cookies(page.context)
```
##### 加载 Cookies 从 JSON 文件
```python
def load_and_add_cookies(context, filepath='cookies.json'):
try:
with open(filepath, 'r') as f:
loaded_cookies = json.load(f)
context.add_cookies(loaded_cookies)
except FileNotFoundError:
pass # 如果没有找到文件则忽略错误继续运行程序逻辑
load_and_add_cookies(context)
```
通过上述方式可以在不同阶段灵活处理 Cookies 数据,在跨请求间保持身份验证信息不失效等问题上非常有用。
阅读全文
相关推荐













