使用Python自动化WhatsApp并存储WhatsApp登录

3
我试图自动化使用Selenium的WhatsApp。问题在于每次启动Chrome实例都需要扫描QRCode。我尝试保存已登录浏览器的cookies,然后加载cookies,但它没有起作用,仍然显示QRCode以进行登录。
我希望存储WhatsApp登录凭据,这样每次运行脚本时就不必重新登录了。
使用Selenium是否可能实现这一点?或者是否有更好的方法?
2个回答

4
添加Chrome用户配置文件,可以重复使用会话数据:
chrom_options.add_argument("user-data-dir=C:\\Users\\AppData\\Local\\Google\\Chrome\\User Data")

获取用户数据目录:

打开:在地址栏输入chrome://version

enter image description here

复制直到不需要profile部分的用户数据。


0

要存储WhatsApp登录,您必须在调试模式下打开Chrome。以下是我在Windows中使用的过程。

首先将chrome.exe添加到环境变量中。然后从cmd中以调试模式打开Chrome。我使用以下vbscript以调试模式打开Chrome。您只需将代码片段保存为chrome_launch.vbs并使用此脚本启动Chrome,第一次使用时会要求您扫描QR码。

Set objStdOut = WScript.StdOut
set osh = createObject("Wscript.shell")
user_profile = """C:\Users\" & osh.ExpandEnvironmentStrings("%USERNAME%") & "\AppData\Local\Google\Chrome\User Data\selenium_chrome_profile"""
osh.run "cmd /c " & "chrome.exe https://web.whatsapp.com/ --remote-debugging-port=9222 --user-data-dir=" & user_profile, 0, True
set osh = Nothing

在登录 WhatsApp Web 后,使用以下 Python 代码片段连接到现有会话:

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

chrome_options = Options()
chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")
driver = webdriver.Chrome('chromedriver.exe', options=chrome_options)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接