Python 通过Selenium从Firefox获得的所有cookie

Python 通过Selenium从Firefox获得的所有cookie,python,python-3.x,selenium,firefox,cookies,Python,Python 3.x,Selenium,Firefox,Cookies,对于我们的隐私政策,我们想编写一个自动列出所有第三方连接以及所有cookie的爬虫程序。这些设备应每天运行,并与现有设备进行比较 对于实现,我在Firefox中使用了python3和Selenium 函数get\u cookies()只返回用于当前域的cookies。->工作不正常 完全抓取网站,然后再次调用所有域不会返回所有cookie。->因此不能正常工作 在Firefox配置文件文件夹(cookies.SQLite)中创建一个SQLite数据库,其中包含所有cookies。但是,Selen

对于我们的隐私政策,我们想编写一个自动列出所有第三方连接以及所有cookie的爬虫程序。这些设备应每天运行,并与现有设备进行比较

对于实现,我在Firefox中使用了python3和Selenium

  • 函数
    get\u cookies()
    只返回用于当前域的cookies。->工作不正常
  • 完全抓取网站,然后再次调用所有域不会返回所有cookie。->因此不能正常工作
  • 在Firefox配置文件文件夹(cookies.SQLite)中创建一个SQLite数据库,其中包含所有cookies。但是,Selenium上的Firefox不会更改此文件。我已经在Firefox中做了一些设置。当我在没有Selenium的情况下启动Firefox时,这个文件会被修改。但如果我使用硒,它不会。我的代码如下所示:
  • 我已经试过了

    问题:

  • 如何通过Selenium从Firefox获取所有cookie
  • Firefox如何通过Selenium修改cookies.sqlite
  • 编辑:我发现Selenium在每次启动时都会在/tmp下创建一个临时文件夹。这也可以。但是如何通过编程方式从Selenium获取正确的文件夹呢
    问题3的解决方案相对简单,可以自动回答所有其他问题。我会让它保持原样。Selenoum在每次启动时创建一个新的配置文件。之后,我可以读取cookies.sqlite文件并获取所有cookies

    我是怎么想出来的:

  • 通过使用
    dir()
  • 之后,能力元素出现了 现在可以使用元素“moz:profile”确定临时概要文件。在关闭Selenium之前,现在执行以下操作:

    # Save cookie file
    outputDest = "yourOutputDestination"
    capability = browser.capabilities
    browserDir = capability['moz:profile']
    cookieFile = os.path.join(browserDir, 'cookies.sqlite')
    os.rename(cookieFile, outputDest)
    # Close selenium
    if browser is not None:
        browser.close()
        browser.quit()
        browser = None
    

    问题3的解决方案相对简单,可以自动回答所有其他问题。我会让它保持原样。Selenoum在每次启动时创建一个新的配置文件。之后,我可以读取cookies.sqlite文件并获取所有cookies

    我是怎么想出来的:

  • 通过使用
    dir()
  • 之后,能力元素出现了 现在可以使用元素“moz:profile”确定临时概要文件。在关闭Selenium之前,现在执行以下操作:

    # Save cookie file
    outputDest = "yourOutputDestination"
    capability = browser.capabilities
    browserDir = capability['moz:profile']
    cookieFile = os.path.join(browserDir, 'cookies.sqlite')
    os.rename(cookieFile, outputDest)
    # Close selenium
    if browser is not None:
        browser.close()
        browser.quit()
        browser = None
    
    print(browser.capabilities)
    {'acceptInsecureCerts': True, 'browserName': 'firefox', 'browserVersion': '76.0.1', 
    'moz:accessibilityChecks': False, 'moz:buildID': '20200507114007', 
    'moz:geckodriverVersion': '0.26.0', 'moz:headless': False, 'moz:processID': 110409, 
    'moz:profile': '/tmp/rust_mozprofilel3IJsK', 'moz:shutdownTimeout': 60000, 
    'moz:useNonSpecCompliantPointerOrigin': False, 'moz:webdriverClick': True, 
    'pageLoadStrategy': 'normal', 'platformName': 'linux',
    'platformVersion': '5.3.0-1020-azure', 'rotatable': False, 'setWindowRect': True, 
    'strictFileInteractability': False, 'timeouts': {'implicit': 0, 'pageLoad': 300000, 
    'script': 30000}, 'unhandledPromptBehavior': 'dismiss and notify'}
    
    # Save cookie file
    outputDest = "yourOutputDestination"
    capability = browser.capabilities
    browserDir = capability['moz:profile']
    cookieFile = os.path.join(browserDir, 'cookies.sqlite')
    os.rename(cookieFile, outputDest)
    # Close selenium
    if browser is not None:
        browser.close()
        browser.quit()
        browser = None