马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
通过 Chrome DevTools Protocol (CDP) 团结 Selenium 可以直接获取欣赏器存储的全部 Cookies(包罗全部域名下的 Cookies),以下是详细步调:
步调 1:设置 Chrome 启用 CDP启动 Chrome 欣赏器时需启用长途调试端口(Remote Debugging Port),这是利用 CDP 的条件:
- from selenium import webdriver
- from selenium.webdriver.chrome.options
- import Options
- # 配置 Chrome 选项
- chrome_options = Options()chrome_options.add_argument("--remote-debugging-port=9222")
- # 启用调试端口
- chrome_options.add_argument("--headless=new")
- # 可选:无头模式# 初始化
- WebDriverdriver = webdriver.Chrome(options=chrome_options)
复制代码 步调 2:通过 CDP 下令获取全部 Cookies利用 Selenium 的 execute_cdp_cmd 方法发送 CDP 下令 Network.getAllCookies:
- # 发送 CDP 命令获取所有
- Cookiescookies_response = driver.execute_cdp_cmd("Network.getAllCookies", {})
- all_cookies = cookies_response.get("cookies", [])
- # 打印结果
- print("所有 Cookies 列表:", all_cookies)
复制代码 完备代码示例
- from selenium import webdriver
- from selenium.webdriver.chrome.options
- import Options
- # 配置 Chrome 并启用 CDP
- chrome_options = Options()chrome_options.add_argument("--remote-debugging-port=9222")
- driver = webdriver.Chrome(options=chrome_options)
- # 打开任意网页(可选)
- driver.get("https://www.example.com")
- # 使用 CDP 命令获取所有 Cookies
- try:
- cookies = driver.execute_cdp_cmd("Network.getAllCookies", {}).get("cookies", [])
- print("获取到的 Cookies 数量:", len(cookies))
- for cookie in cookies:
- print(f"名称: {cookie['name']}, 值: {cookie['value']}, 域名: {cookie['domain']}")
- except Exception as e:
- print("获取 Cookies 失败:", e)# 关闭浏览器driver.quit()
复制代码 关键点分析
- 启用调试端口: - --remote-debugging-port=9222 是利用 CDP 的关键设置。 - 假如未启用此端口,execute_cdp_cmd 将无法工作。
- CDP 下令 Network.getAllCookies: - 该下令返回欣赏器存储的 全部 Cookies,包罗差别域名下的 Cookies。 - 返回的 Cookies 信息包含 name、value、domain、path、expires 等字段。
- 与传统方法的区别: - 传统 driver.get_cookies() 只能获取当前页面域名下的 Cookies。 - CDP 方法可以获取欣赏器全局存储的 Cookies,无需切换标签页或域名。
常见题目
- 返回空列表:
- 确保欣赏器已加载过页面(部门 Cookies 大概在页面加载后生成)。
- 查抄欣赏器隐私设置(如隐身模式下大概无 Cookies)。
- 安全限定:
- 部门 Cookies 大概标记为 HttpOnly 或 Secure,但 CDP 通常仍可获取(与 JavaScript 差别)。
- 欣赏器兼容性:
- CDP 需要 Chrome 或基于 Chromium 的欣赏器(如 Edge)。
- 确保 Chrome 和 ChromeDriver 版本兼容(发起利用最新稳固版)。通过上述方法,你可以直接通过 Selenium 调用底层 CDP 接口,高效获取完备的欣赏器 Cookies 数据。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
|