Python 3-Xvfb-run上的Selenium无法处理扩展

问题描述

我需要使用selenium中的Python 3模块,使用带有Chrome驱动程序的uBlock插件和Chrome驱动程序来自动化任务,以从网站中提取信息。 我正在远程计算机上没有GUI地远程运行代码-为此,我正在使用xvfb-run模拟一个桌面环境,在该环境中Chrome以特定的窗口大小启动。

远程计算机具有以下Debian操作系统:

uname -a
Linux mem 4.19.0-10-amd64 #1 SMP Debian 4.19.132-1 (2020-07-24) x86_64 GNU/Linux

这些是我在远程计算机上配置环境和代码的步骤:

1-要配置我的环境,我安装了此版本的Google Chrome:

google-chrome --version
Google Chrome 86.0.4240.111

2-检查我安装的Python 3selenium的版本:

python --version
Python 3.7.3

pip freeze
selenium==3.141.0

3-检查xvfb-run版本:

apt-cache policy xvfb
2:1.20.4-1+deb10u1

4-配置了这些软件包后,我从此列表中获取chromedriver_linux64.zip(以下版本86.0.4240.22是最新版本,与安装的google-chrome的主要版本相同):

https://chromedriver.storage.googleapis.com/index.html
https://chromedriver.storage.googleapis.com/index.html?path=86.0.4240.22/

5-为了能够使用Chrome的uBlock扩展,我需要安装一个扩展,该扩展能够生成其他已安装扩展的.crx存档文件。 为此,我使用了CRX提取器/下载器:

https://chrome.google.com/webstore/detail/crx-extractordownloader/ajkhmmldknmfjnmeedkbkkojgobmljda

6-使用该扩展名之后,我得到了ublock.crx文件进行测试。

我设法使用chromedriver_linux64.zip中的二进制文件(没有扩展名)来启动Chrome实例并进行一些基本的爬网。 但是,当我尝试在代码中使用ublock.crx时,出现了异常。

代码是这样的:

这是产生的异常:

ublock.crx error
selenium.common.exceptions.SessionNotCreatedException: Message: session not 
created: cannot process extension #1
from unkNown error: cannot unzip

我正在从程序中启动它,如下所示:

from selenium import webdriver

option = webdriver.ChromeOptions()
option.add_extension(ublock_crx_file_path)
driver = webdriver.Chrome(executable_path=driver_path,options=option)

我确保ublock_crx_file_path的路径有效,并且指向我从Chrome获取文件

希望有人能对此有所启发?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)