【问题标题】:python selenium chrome cookie database is emptypython selenium chrome cookie 数据库为空
【发布时间】:2019-12-20 23:27:10
【问题描述】:

我正在尝试制作一个从网站获取所有 cookie 的 cookie 扫描器。 我的方法是用 Selenium ChromeDriver 打开一个网站,然后读取 Chrome 浏览器创建的 sqlite3 数据库。

我的问题是数据库显然是空的,但在 Chrome 浏览器窗口中,我可以看到 cookie。

这是我的代码和浏览器的截图:

from selenium import webdriver
import os, shutil, sqlite3


browser_list_place = 0
browser_list = []
profiles_folder = "profiles"


def getcookies(url):
    if os.path.isdir(profiles_folder):
        shutil.rmtree(profiles_folder)

    co = webdriver.ChromeOptions()
    co.add_argument("--no-sandbox")
    co.add_argument("--user-data-dir=" + profiles_folder + "/" + str(browser_list_place))

    browser_list.append(webdriver.Chrome('D:\crawler\chromedriver.exe', options=co))
    browser_list[browser_list_place].set_page_load_timeout(30)

    browser_list[browser_list_place].get(url)

    #browser_list[browser_list_place].quit()

    for folder in range(0, browser_list_place + 1):
        con = sqlite3.connect(profiles_folder + "/" + str(folder) + "/Default/Cookies")
        cur = con.cursor()
        cur.execute("SELECT * FROM cookies")
        rows = cur.fetchall()
        for row in rows:
            print(row)


getcookies('https://developer.mozilla.org/de/')

为什么我的程序的数据库是空的?

【问题讨论】:

    标签: python google-chrome cookies selenium-chromedriver


    【解决方案1】:

    使用pickle保存和加载cookies

    import pickle as pk
    pk.dump(driver.get_cookies(), open("cookies.pkl", "wb"))  # save cookies
    
    cookies = pk.load(open("cookies.pkl", "rb"))  # load cookies
    for cookie in cookies:
        driver.add_cookie(cookie)
    

    【讨论】:

    • 但是给我driver.get_cookies()所有cookies还包括第三方cookies?因为谷歌浏览器显示 7 个 Cookie 和 driver.get_cookies() 上面的 url 只有 5 个。如果我用 sqlite 浏览器打开 sqlite3 数据库,它会显示 6 个 cookie。为什么?
    • 不。我认为 selenium 只允许您与来自当前域的 cookie 进行交互。
    • 是的,这就是为什么我必须从谷歌浏览器读取 sqlite3 数据库的原因,因为我认为这些包括所有 cookie...
    • 不确定这是否有帮助:stackoverflow.com/questions/22532870/…
    • 也许稍后。我目前的问题是数据库有时是空的,有时不是我用 sqlite 浏览器打开它,我不知道为什么。在特定时间后删除谷歌浏览器的 cookie 还是我有什么问题?
    猜你喜欢
    • 2014-07-25
    • 2021-07-13
    • 2018-02-18
    • 1970-01-01
    • 2018-10-31
    • 2016-04-01
    • 2021-10-19
    • 1970-01-01
    • 2020-01-24
    相关资源
    最近更新 更多