6 votes

Comment utiliser le navigateur web Brave avec python, selenium et chromedriver ?

Je suis passé de Chrome de Google à Le navigateur web Brave et j'ai du mal à le faire fonctionner avec Brave comme il le faisait avec Chrome. Brave est basé sur Chrome, donc j'imagine que ça ne devrait pas être si difficile. Je me suis assuré que mon Brave et mon Chromedriver sont sur la même version comme ceci,

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

Mon chromedriver est aussi dans /user/bin ,

~/path $ cd /usr/bin/
/usr/bin $ ls | grep chromedriver
chromedriver 

Et pour vérifier la version Brave, j'obtiens : Version 0.68.132 Chromium: 76.0.3809.132 (Official Build) (64-bit)

Puis j'exécute ce code,

from selenium import webdriver

driver = webdriver.Chrome(executable_path='/usr/bin/brave-browser')
driver.get("http://www.python.org")
driver.close()

Cela ouvre une fenêtre Brave, mais au lieu d'obtenir la page vers laquelle le pilote est dirigé, une exception est levée,

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

14voto

Ricael Points 156

J'ai finalement réussi à le faire fonctionner :

Essayez ce python script (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")

Santé.

2voto

New contributor Points 31198

El executable_path est utilisée pour transmettre le chemin d'accès absolu de l'interface utilisateur. WebDriver binaire, c'est-à-dire le chromedriver exécutable.

Pour lancer un Courageux de la session du navigateur, vous devez également transmettre l'emplacement absolu de l'adresse de l'utilisateur. navigateur courageux binaire par le biais du binary_location d'une instance de ChromeOptions .

Le bloc de code effectif sera donc :

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

Références

Vous pouvez trouver quelques discussions détaillées pertinentes dans :

0voto

Calvin Points 1

Cela fonctionne également sous Windows 10 avec le navigateur Brave. J'ai téléchargé Chromedriver et je l'ai mis dans le dossier avec 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")

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X