在利用Python的Selenium库打卡网页后,通过CDP下令获取全部cookies(包罗Httponly和Secure的cookies)

[复制链接]
发表于 2025-9-22 05:03:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
通过 Chrome DevTools Protocol (CDP) 团结 Selenium 可以直接获取欣赏器存储的全部 Cookies(包罗全部域名下的 Cookies),以下是详细步调:
步调 1:设置 Chrome 启用 CDP启动 Chrome 欣赏器时需启用长途调试端口(Remote Debugging Port),这是利用 CDP 的条件:

  1. from selenium import webdriver
  2. from selenium.webdriver.chrome.options
  3. import Options
  4. # 配置 Chrome 选项
  5. chrome_options = Options()chrome_options.add_argument("--remote-debugging-port=9222")  
  6. # 启用调试端口
  7. chrome_options.add_argument("--headless=new")  
  8. # 可选:无头模式# 初始化
  9. WebDriverdriver = webdriver.Chrome(options=chrome_options)
复制代码
步调 2:通过 CDP 下令获取全部 Cookies利用 Selenium 的 execute_cdp_cmd 方法发送 CDP 下令 Network.getAllCookies:

  1. # 发送 CDP 命令获取所有
  2. Cookiescookies_response = driver.execute_cdp_cmd("Network.getAllCookies", {})
  3. all_cookies = cookies_response.get("cookies", [])
  4. # 打印结果
  5. print("所有 Cookies 列表:", all_cookies)
复制代码
完备代码示例

  1. from selenium import webdriver
  2. from selenium.webdriver.chrome.options
  3. import Options
  4. # 配置 Chrome 并启用 CDP
  5. chrome_options = Options()chrome_options.add_argument("--remote-debugging-port=9222")
  6. driver = webdriver.Chrome(options=chrome_options)
  7. # 打开任意网页(可选)
  8. driver.get("https://www.example.com")
  9. # 使用 CDP 命令获取所有 Cookies
  10. try:   
  11.     cookies = driver.execute_cdp_cmd("Network.getAllCookies", {}).get("cookies", [])
  12.     print("获取到的 Cookies 数量:", len(cookies))   
  13.     for cookie in cookies:        
  14.         print(f"名称: {cookie['name']}, 值: {cookie['value']}, 域名: {cookie['domain']}")
  15. except Exception as e:   
  16.     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企服之家,中国第一个企服评测及商务社交产业平台。
继续阅读请点击广告
回复

使用道具 举报

×
登录参与点评抽奖,加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表