You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Selenium控制Chrome无法读取已有Cookie,但网站可识别的技术问题

关于Selenium中Cookie读取的疑问解答

一、Cookie的存储位置

你指定的user-data-dir文件夹下,Default/Cookies是核心存储文件——这是一个SQLite数据库,所有已保存的网站Cookie(包括dw.com和paris.com的)都存在这里面。

二、为什么网站能识别你,但driver.get_cookies()读不到

driver.get_cookies()有个关键限制:它只能读取当前Selenium会话中已经加载到内存里的Cookie。重启会话后,你还没访问dw.com或paris.com,浏览器还没把这两个域名的Cookie从SQLite数据库加载到当前会话的内存中,所以调用该方法会返回空列表。

而当你手动访问这两个网站时,浏览器会自动从本地SQLite数据库中匹配对应域名的Cookie并发送给网站,所以网站能识别你,不再弹出Cookie授权提示。

三、如何读取这些Cookie

有两种可行的方式:

  • 方式一:先访问目标网站再读取
    在调用driver.get_cookies()之前,先执行driver.get("https://www.dw.com")和driver.get("https://www.paris.com"),浏览器会将对应域名的Cookie加载到会话内存中,之后就能通过driver.get_cookies()读取到这些网站的Cookie。如果需要分域名读取,可以访问单个域名后调用该方法。
  • 方式二:直接读取SQLite数据库
    用Python的sqlite3模块直接打开user-data-dir/Default/Cookies文件,查询里面的Cookie数据。示例代码如下:
    import sqlite3
    import os
    
    user_data_dir = "<你的user-data-dir完整路径>"
    cookies_db_path = os.path.join(user_data_dir, "Default", "Cookies")
    
    # 注意:需确保浏览器已关闭,否则数据库会被锁定无法读取
    conn = sqlite3.connect(cookies_db_path)
    cursor = conn.cursor()
    
    # 查询dw.com相关的Cookie
    cursor.execute("SELECT name, value, domain FROM cookies WHERE domain LIKE '%dw.com%'")
    dw_cookies = cursor.fetchall()
    for cookie in dw_cookies:
        print(f"名称: {cookie[0]}, 值: {cookie[1]}, 域名: {cookie[2]}")
    
    conn.close()
    

内容的提问来源于stack exchange,提问作者C4H7Cl2O4P

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 08:35:09