如何使用 Selenium Python 保存 Whatsapp web 的会话?
Posted
技术标签:
【中文标题】如何使用 Selenium Python 保存 Whatsapp web 的会话?【英文标题】:How to save the session of Whatsapp web with Selenium Python? 【发布时间】: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()
前后也是空的
【问题讨论】:
你可以用泡菜 我知道 (***.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 行很难理解。 【参考方案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.***.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
【讨论】:
以上是关于如何使用 Selenium Python 保存 Whatsapp web 的会话?的主要内容,如果未能解决你的问题,请参考以下文章
如何在python中保存selenium和opencv的部分截图
如何使用 Selenium Python 保存 Whatsapp web 的会话?
用python+selenium抓取微博24小时热门话题的前15个并保存到txt中
如何在 Selenium (Python) 中将打开的页面保存为 pdf