问题描述
我需要使用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 3
和selenium
的版本:
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 (将#修改为@)