我从 Google 的 Chrome 切换到 Brave 网络浏览器 并且很难让它像 Chrome 一样与 Brave 一起使用。 Brave 是基于 Chromium 的,所以我猜它应该不会那么难。我确保我的 Brave 和 Chromedriver 处于相同版本,像这样,
~/some/path $ chromedriver --version
ChromeDriver 76.0.3809.126 (d80a294506b4c9d18015e755cee48f953ddc3f2f-refs/branch-heads/3809@{#1024})
我的 chromedriver 也在
/user/bin
,
~/path $ cd /usr/bin/
/usr/bin $ ls | grep chromedriver
chromedriver
并且要检查 Brave 版本,我得到:
Version 0.68.132 Chromium: 76.0.3809.132 (Official Build) (64-bit)
然后我运行此代码,
from selenium import webdriver
driver = webdriver.Chrome(executable_path='/usr/bin/brave-browser')
driver.get("http://www.python.org")
driver.close()
这会打开一个 Brave 窗口,但不会获取驱动程序所指向的页面,而是会引发异常,
Traceback (most recent call last):
File "webscrap.py", line 3, in <module>
driver = webdriver.Chrome(executable_path='/usr/bin/brave-browser')
File "/home/username/.local/lib/python3.6/site-packages/selenium/webdriver/chrome/webdriver.py", line 73, in __init__
self.service.start()
File "/home/username/.local/lib/python3.6/site-packages/selenium/webdriver/common/service.py", line 98, in start
self.assert_process_still_running()
File "/home/username/.local/lib/python3.6/site-packages/selenium/webdriver/common/service.py", line 111, in assert_process_still_running
% (self.path, return_code)
selenium.common.exceptions.WebDriverException: Message: Service /usr/bin/brave-browser unexpectedly exited. Status code was: -11
在代码中遇到的问题在于试图将
webdriver.Chrome
实例化时,将 Brave 浏览器的可执行文件路径传递给了
executable_path
参数。
webdriver.Chrome
是专门为 Chrome 浏览器设计的,而 Brave 虽然基于 Chromium,但拥有不同的可执行文件和配置。
为了使用 Selenium 控制 Brave 浏览器,需要使用
chromedriver
并指定 Brave 浏览器的路径。以下是操作步骤:
1. 下载与的 Brave 浏览器版本匹配的 ChromeDriver
- 访问 ChromeDriver 下载页面: https://chromedriver.chromium.org/downloads
-
选择与的 Brave 浏览器版本相对应的 ChromeDriver 版本。可以通过访问
brave://settings/help
查看 Brave 浏览器版本。 - 下载对应操作系统的 ChromeDriver 版本。
2. 解压 ChromeDriver 文件(如果需要)
3. 将 ChromeDriver 添加到系统路径或将其放置在脚本可以访问的目录中。
4. 修改的 Python 代码
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
# 设置 Brave 浏览器的选项
options = Options()
options.binary_location = '/path/to/brave-browser' # 替换为的 Brave 浏览器可执行文件路径
# 创建 ChromeDriver 实例,指定 ChromeDriver 路径和 Brave 浏览器选项
driver = webdriver.Chrome(executable_path='/path/to/chromedriver', options=options)
driver.get("http://www.python.org")
driver.close()
请确保将以下内容替换为的实际路径:
-
/path/to/brave-browser
:Brave 浏览器可执行文件的路径。 -
/path/to/chromedriver
:ChromeDriver 可执行文件的路径。
通过这些步骤,就可以使用 Python、Selenium 和 ChromeDriver 成功控制 Brave 浏览器了。
标签:python,selenium,selenium-chromedriver,brave,brave-browser From: 57837496