【问题标题】:How to load each cookie file in a folder with pickle如何使用pickle将每个cookie文件加载到文件夹中
【发布时间】:2023-03-04 04:12:01
【问题描述】:

在我的 cookies 文件夹中,有很多文件 cookies1.txt、cookies2.txt、... 下面是我的脚本,我尝试使用它通过 cookies 登录 facebook,每个 cookie 文件都会加载并执行操作然后完成并执行下一个加载文件,当我一个一个地运行每个cookie时它工作正常但是当我将它们全部放在一个文件夹中时,它出现一个错误,有人可以帮助我吗?谢谢。

import os
import pickle
import selenium.webdriver


driver = selenium.webdriver.Firefox()
files = os.listdir("cookies")
for f in files:
    cookies = pickle.load(open(f, "rb"))
    for cookie in cookies:
        driver.add_cookie(cookie)
        driver.get("http://www.facebook.com")

它显示:

Traceback (most recent call last):
  File "C:/Users/tuong cat/AppData/Local/Programs/Python/Python37-32/Lib/site-packages/new.py", line 10, in <module>
    driver.add_cookie(cookie)


  File "C:\Users\tuong cat\AppData\Local\Programs\Python\Python37-32\Lib\site-packages\selenium\webdriver\remote\webdriver.py", line 894, in add_cookie
    self.execute(Command.ADD_COOKIE, {'cookie': cookie_dict})
  File "C:\Users\tuong cat\AppData\Local\Programs\Python\Python37-32\Lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
    self.error_handler.check_response(response)


  File "C:\Users\tuong cat\AppData\Local\Programs\Python\Python37-32\Lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.InvalidCookieDomainException: Message: Document is cookie-averse

【问题讨论】:

  • 你如何获得这些 cookie 文件?
  • @RatmirAsanov 在编辑问题时,请不要将&lt;blockquotes> 添加到错误跟踪日志中。由于错误堆栈跟踪中的错误消息word Wrapped,因此调试变得困难。
  • @RatmirAsanov 我使用 pickle 来保存 cookie 文件。
  • 但是你的文件有.txt-extension...
  • 我尝试使用 .pkl 和 .txt,两者都适用,但是当我将多个 cookie 放入一个文件夹时,它不起作用

标签: python selenium selenium-webdriver cookies


【解决方案1】:

我认为您必须在打开 URL 后添加 cookie

driver.get("http://www.facebook.com")
for f in files:
    cookies = pickle.load(open(f, "rb"))
    for cookie in cookies:
        driver.add_cookie(cookie)

【讨论】:

    【解决方案2】:

    1) 您的 cookie 文件应具有“.pkl”扩展名。

    2) 您的文件应该由pickle 包在您的特定域下使用您的 Facebook 凭据登录操作后生成。

    3) 您应该在您的特定域下加载 cookie 文件。

    在您的情况下,特定域是facebook.com

    希望对你有帮助!

    PS:这是我的 Facebook 工作示例:https://github.com/ratmirasanov/demo_test_automation_project/tree/master/login_with_using_cookies/

    【讨论】:

    • 谢谢,拉特米尔阿萨诺夫!它不适用于所有 3
    • 可能是http 的问题?应该是https
    猜你喜欢
    • 1970-01-01
    • 2013-11-19
    • 1970-01-01
    • 2021-07-09
    • 2020-05-15
    • 2015-12-03
    • 2020-09-27
    • 2018-08-06
    • 2016-10-22
    相关资源
    最近更新 更多