允许 facebook cookies 通过 selenium 中的多个会话跟踪我

Allow facebook cookies to track me through multiple sessions in selenium

我正在使用 selenium 抓取数据,用于一项学术研究,该研究将测试 facebook 和网络上的某些用户行为将如何影响他们看到的广告。

为此,我需要有一种假用户首先与 facebook 交互,然后访问一些带有 facebook cookie 的网站,允许 facebook 继续跟踪其行为,然后返回 facebook。

我没有做过多少 web 开发,我似乎对如何为这种情况保留和加载 cookie 感到困惑。

我一直在尝试使用以下代码片段保存和加载烹饪:

# saving
pickle.dump(driver.get_cookies(), cookiesfile)

# loading
cookies = pickle.load(cookiesfile)
for cookie in cookies:
    driver.add_cookie(cookie)

在 facebook 上,这将创建一个错误消息弹出窗口告诉我重新加载,或者将我重定向到登录页面。在其他网站上,即使是那些明确声明他们有 Facebook 跟踪器的网站,这也会导致 InvalidCookieDomainException.

我做错了什么?

与其自己处理 cookie,我建议使用 ChromeOptions 来保持浏览器会话。这可能有助于维护本地存储和其他 cookie。

下次打开浏览器会话时,chrome 实例将加载之前的“配置文件”并将继续维护它。

options = webdriver.ChromeOptions()
options.add_argument('user-data-dir={}'.format(<path_to_a_folder_reserved_for_browser_data>))

driver = webdriver.Chrome(executable_path=<chromedriver_exe_path>, options=options)