【问题标题】:How to use Brave web browser with python, selenium and chromedriver?如何使用带有 python、selenium 和 chromedriver 的 Brave 网络浏览器?
【发布时间】:2020-01-10 05:53:57
【问题描述】:

我从 Google 的 Chrome 切换到 Brave web browser,并且很难让它像在 Chrome 上那样与 Brave 一起工作。 Brave 是基于铬的,所以我猜它不应该那么难。我确保我的 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

【问题讨论】:

    标签: python selenium selenium-chromedriver brave brave-browser


    【解决方案1】:

    我终于成功了:

    试试这个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")
    

    干杯。

    【讨论】:

      【解决方案2】:

      executable_path 键用于传递 WebDriver 二进制文件的绝对路径,即 chromedriver 可执行文件。

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

      所以有效的代码块将是:

      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")
      

      参考文献

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

      【讨论】:

        【解决方案3】:

        这也适用于带有 Brave 浏览器的 Windows 10。我下载了 Chromedriver 并把它放在 Brave.exe 的文件夹中。

        from selenium import webdriver
        driver_path = "C:\\Users\\5150s\\AppData\\Local\\Programs\\Python\\Python38\\chromedriver.exe"
        brave_path = "C:\\Program Files (x86)\\BraveSoftware\\Brave-Browser\\Application\\brave.exe"
        option = webdriver.ChromeOptions()
        option.binary_location = brave_path
        browser = webdriver.Chrome(executable_path=driver_path, options=option)
        browser.get("https://www.google.es")
        

        【讨论】:

        • 确保下载与您的 Brave 浏览器匹配的驱动程序。转到“关于 Brave”并查找 Chromium 驱动程序版本,例如Chromium:91.0.4472.164,然后从 Chromium 下载站点选择该版本:chromedriver.chromium.org/downloads
        【解决方案4】:

        上面的解决方案给了我一些错误。此代码删除可执行路径和选项错误。 Chromedriver 在 pycharm 文件夹中。

        from selenium import webdriver
        from selenium.webdriver.chrome.service import Service
        
        driver_path = "C:/Users/johnm/PycharmProjects/chromedriver.exe"
        brave_path = "C:/Program Files/BraveSoftware/Brave-Browser/Application/brave.exe"
        
        s=Service(driver_path)
        option = webdriver.ChromeOptions()
        option.binary_location = brave_path
        browser = webdriver.Chrome(service=s, options=option)
        browser.get("https://www.google.es")
        

        【讨论】:

          猜你喜欢
          • 2021-06-26
          • 2018-04-19
          • 2020-10-18
          • 2023-03-28
          • 1970-01-01
          • 1970-01-01
          • 2018-11-15
          • 2022-01-15
          相关资源
          最近更新 更多