Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在selenium中保存whatsapp web会话?_Python_Selenium - Fatal编程技术网

Python 如何在selenium中保存whatsapp web会话?

Python 如何在selenium中保存whatsapp web会话?,python,selenium,Python,Selenium,我正在尝试使用python访问whatsapp web,而不必每次重新启动程序时都扫描二维码(因为在我的普通浏览器中,我也不必这样做)。但是我怎么能做到呢?whatsapp web连接到我手机的数据存储在哪里?当我重新运行代码时,如何保存这些数据并将其发送到浏览器 我已经试过了,因为有人告诉我应该保存饼干: from selenium import webdriver import time browser = None cookies = None def init(): browse

我正在尝试使用python访问whatsapp web,而不必每次重新启动程序时都扫描二维码(因为在我的普通浏览器中,我也不必这样做)。但是我怎么能做到呢?whatsapp web连接到我手机的数据存储在哪里?当我重新运行代码时,如何保存这些数据并将其发送到浏览器

我已经试过了,因为有人告诉我应该保存饼干:

from selenium import webdriver
import time
browser = None
cookies = None
def init():
    browser = webdriver.Firefox(executable_path=r"C:/Users/Pascal/Desktop/geckodriver.exe")
    browser.get("https://web.whatsapp.com/")
    time.sleep(5) # in this time I scanned the QR to see if there are cookies 
    cookies = browser.get_cookies()
    print(len(cookies))
    print(cookies)
init()
不幸的是没有饼干。。 输出为0和[]。
如何解决此问题?

如的答案中所述,将您的
Chrome
配置文件传递到
Chromedriver
以避免此问题。您可以这样做:

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

options = webdriver.ChromeOptions() 
options.add_argument("user-data-dir=C:\\Path") #Path to your chrome profile
driver = webdriver.Chrome(executable_path="C:\\Users\\chromedriver.exe", options=options)

这一个适合我,我刚刚在脚本的主目录上创建了一个文件夹,并做了一些修改,它工作得非常完美

###########

E\u PROFILE\u PATH=“user data dir=C:\Users\Denoh\Documents\Project\WhatBOts\SessionSaver”

################## 这是我稍后将导入的配置文件 ##################

主脚本从这里开始 ##################

从selenium导入webdriver 从配置导入E_配置文件路径

options=webdriver.ChromeOptions() 选项。添加参数(E\U配置文件\U路径)

driver=webdriver.Chrome(可执行文件\u path='chromedriver\u win32\u 86.0.4240.22\chromedriver.exe',options=options)
司机,上车https://web.whatsapp.com/)

我试过了。它转到whatsapp web,然后程序崩溃,错误代码为:无法打开pak文件进行写入:进程无法访问该文件,因为它已在使用另一个进程。(0x20)这是因为您可能打开了另一个chrome/firefox。关闭它,然后运行脚本。如果我已经打开了浏览器,它会引发以下异常:无效参数:用户数据目录已在使用,请为--user data dir参数指定唯一值,或者不使用--user data dir,但当我没有打开浏览器时,它会抛出我上面提到的错误,可能浏览器仍在后台运行。只需在浏览器中结束任务并尝试运行脚本。我在后台没有看到任何运行。我尝试使用Firefox,没有出现错误,但QR码仍然需要扫描,但我将用户数据目录更改为我的Firefox配置文件路径。