【问题标题】:How to save the session of Whatsapp web with Selenium Python?如何使用 Selenium Python 保存 Whatsapp web 的会话?
【发布时间】:2018-11-20 09:02:11
【问题描述】:

我的期望是验证后会自动将某些内容添加到 cookie 数组中,但事实并非如此。

driver = webdriver.Chrome(chromedriver)
whatsapp_url = "https://web.whatsapp.com"
driver.get(whatsapp_url)
print(driver.get_cookies())
time.sleep(30) # We are doing the manual QR code verification here
print(driver.get_cookies())

driver.get_cookies()前后也是空的

【问题讨论】:

  • 你可以用泡菜
  • 我知道 (stackoverflow.com/a/15058521/865220) 仅针对 QR 码,我的任何实验都不起作用。你能给出保存whatsapp二维码的完整工作代码吗?
  • 你可以保存整个会话 chrome_options.add_argument("user-data-dir=" + os.path.dirname(sys.argv[0])) browser = webdriver.Chrome(chrome_options=chrome_options )
  • 请回答完整的工作代码,从评论中的 1-2 行很难理解。

标签: python python-3.x selenium selenium-webdriver selenium-chromedriver


【解决方案1】:

试试这个:

options = webdriver.ChromeOptions();
options.add_argument('--user-data-dir=./User_Data')
driver = webdriver.Chrome(chrome_options=options)
driver.get('https://web.whatsapp.com/')

您需要第一次登录。 当您必须存储会话时,它将始终有效。无需导入/导出 cookie。

【讨论】:

  • 我试过这个方法。但是,它不起作用。还是需要二维码才能登录
【解决方案2】:

我无法评论 Abhi Bhalgami 的答案,但我需要根据另一篇帖子进行一些更改:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chromepath = r'E:\chromedriver\chromedriver.exe'
options = webdriver.ChromeOptions() 
options.add_argument("user-data-dir=C:\\Users\\user\\AppData\\Local\\Google\\Chrome\\User Data")
driver = webdriver.Chrome(executable_path=chromepath, chrome_options=options)

extract and save whatsapp session from chrome browser local storage and then use it on another device

【讨论】:

    【解决方案3】:

    https://pt.stackoverflow.com/questions/241604/salva-o-estado-ou-os-cookies-do-navegador-utilizando-o-selenium

    这对我来说很好用!我

    import os
    from selenium import webdriver
    
    dir_path = os.getcwd()
    profile = os.path.join(dir_path, "profile", "wpp")
    options = webdriver.ChromeOptions()
    options.add_argument(
        r"user-data-dir={}".format(profile))
    
    browser = webdriver.Chrome("./chromedriver.exe", chrome_options=options)
    
    browser.get("https://web.whatsapp.com")
    

    【讨论】:

      【解决方案4】:

      不确定,但您可以使用 pickle 保存当前的 cookie,例如:

      import pickle
      from selenium import webdriver
      
      driver = webdriver.Chrome()
      driver.get("http://www.google.com")
      pickle.dump( driver.get_cookies() , open("cookies.pkl","wb"))
      

      然后使用以下代码将它们添加回来:

      import pickle
      from selenium import webdriver
      
      driver = webdriver.Chrome()
      driver.get("http://www.google.com")
      cookies = pickle.load(open("cookies.pkl", "rb"))
      for cookie in cookies:
          driver.add_cookie(cookie)
      

      【讨论】:

        【解决方案5】:

        Web Whatsapp 将会话存储在 IndexedDB 中,并将这些值同步到本地存储。

        这是您可以尝试的工作代码:tithiwa/session.py 使用此 javascript code

        【讨论】:

          猜你喜欢
          • 2020-02-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-12-03
          • 2015-11-02
          • 2020-10-01
          • 2016-11-18
          • 2010-10-31
          相关资源
          最近更新 更多