前言

playwright 操作浏览器上的页面后,后续如果想结合其他的框架操作接口(如:requests),可以直接获取到浏览器的 cookies。

context.cookies() 获取浏览器 cookies

使用示例

from playwright.sync_api import sync_playwright, expect
# 上海悠悠 wx:283340479
# blog:https://www.cnblogs.com/yoyoketang/


with sync_playwright() as p:
    browser = p.chromium.launch(headless=False)
    context = browser.new_context()

    page = context.new_page()

    # 访问浏览器页面
    page.goto('https://www.cnblogs.com/yoyoketang/')

    # 方法1
    print(context.cookies())
    # 方法2
    print(page.context.cookies())

运行结果

[{'name': '.Asp....', 'value': '........', 'domain': 'www.cnblogs.com', 'path': '/', 'expires': -1, 'httpOnly': True, 'secure': False, 'sameSite': 'Lax'}, 
{'name': 'a', 'value': '....', 'domain': '.miaozhen.com', 'path': '/', 'expires': 1727770060.287547, 'httpOnly': False, 'secure': True, 'sameSite': 'None'}
...]

内容比较长,省略了一些。
如果context.cookies()未指定urls 参数,此方法将返回所有cookie。如果指定了urls,则只返回影响这些 url 的cookie。
仅获取当前访问地址的cookies

# 访问浏览器页面
page.goto('https://www.cnblogs.com/yoyoketang/')

print(page.url)
print(context.cookies(page.url))

另外 2 个 cookies 相关操作方法

# 添加cookies
context.add_cookies()
# 清空
context.close()

文章转自:https://www.cnblogs.com/yoyoketang/p/17662694.html