如何使用带有 python、selenium 和 chromedriver 的 Brave 网络浏览器?

scr*_*ibe 7 python selenium selenium-chromedriver brave brave-browser

我从 Google 的 Chrome 切换到Brave 网络浏览器,但很难让它像 Chrome 一样与 Brave 一起使用。Brave 是基于铬的,所以我猜它不应该那么难。我确保我的 Brave 和 Chromedriver 使用相同的版本,

~/some/path $ chromedriver --version
ChromeDriver 76.0.3809.126 (d80a294506b4c9d18015e755cee48f953ddc3f2f-refs/branch-heads/3809@{#1024})
Run Code Online (Sandbox Code Playgroud)

我的 chromedriver 也在/user/bin

~/path $ cd /usr/bin/
/usr/bin $ ls | grep chromedriver
chromedriver 
Run Code Online (Sandbox Code Playgroud)

要检查 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()
Run Code Online (Sandbox Code Playgroud)

这会打开一个 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
Run Code Online (Sandbox Code Playgroud)

小智 17

我终于设法让它工作:

试试这个 python 脚本 (python3.7)

from selenium import webdriver

driver_path = "C:/Users/username/PycharmProjects/chromedriver.exe"
brave_path = "C:/Program Files (x86)/BraveSoftware/Brave-Browser/Application/brave.exe"

option = webdriver.ChromeOptions()
option.binary_location = brave_path
# option.add_argument("--incognito") OPTIONAL
# option.add_argument("--headless") OPTIONAL

# Create new Instance of Chrome
browser = webdriver.Chrome(executable_path=driver_path, chrome_options=option)

browser.get("https://www.google.es")
Run Code Online (Sandbox Code Playgroud)

干杯。


Deb*_*anB 8

executable_path密钥用于传递WebDriver二进制文件(即chromedriver可执行文件)的绝对路径。

要启动Brave浏览器会话,您还必须通过实例的参数传递Brave-browser二进制文件的绝对位置。binary_locationChromeOptions

所以有效的代码块将是:

from selenium import webdriver

chromedriver_path = '/usr/bin/chromedriver'
brave_path = '/usr/bin/brave-browser'
option = webdriver.ChromeOptions()
option.binary_location = brave_path
browser = webdriver.Chrome(executable_path=driver_path, options=option)
browser.get("https://www.google.es")
Run Code Online (Sandbox Code Playgroud)

参考

您可以在以下位置找到一些相关的详细讨论: