如何使用Selenium Python提取网站中的第三方Cookie?
问题根源
Selenium原生的driver.get_cookies()方法仅返回当前页面主域名的第一方Cookie,无法抓取第三方域名设置的Cookie。要获取全量Cookie,必须借助Chrome DevTools Protocol(CDP)的能力。
解决方案
通过Selenium的execute_cdp_cmd方法调用CDP的Network.getAllCookies命令,直接获取浏览器存储的所有Cookie,包括第三方的。
代码实现
from selenium import webdriver from selenium.webdriver.chrome.options import Options # 初始化Chromium系浏览器(Chrome/Edge均可) chrome_options = Options() # 可选:保留用户数据目录,避免每次启动全新环境 # chrome_options.add_argument("--user-data-dir=./local_chrome_profile") driver = webdriver.Chrome(options=chrome_options) # 访问目标站点 driver.get("https://your-target-site.com") # 调用CDP命令获取所有Cookie full_cookies = driver.execute_cdp_cmd('Network.getAllCookies', {}) # 提取Cookie列表(包含所有域名的Cookie) all_cookies_list = full_cookies['cookies'] # 遍历输出示例(可根据需求存储或处理) for cookie in all_cookies_list: print(f"域名: {cookie['domain']}, Cookie名: {cookie['name']}, 值: {cookie['value']}") # 关闭浏览器 driver.quit()
补充说明
Network.getAllCookies返回的Cookie包含完整字段:domain、name、value、path、expires、httpOnly、secure等,可按需筛选- 若使用Firefox,需替换为CDP命令
Storage.getAllCookies,用法逻辑一致 - 确保浏览器版本与Selenium版本兼容,避免CDP命令调用失败
内容的提问来源于stack exchange,提问作者GAUTAM CHANDRA BANDYOPADHYAY
相关产品推荐
相关产品推荐

