1
votes

Comment ajouter chromedriver?

Je n'ai pas compris comment installer le pilote Chrome depuis environ 8 heures. J'ai fait beaucoup de recherches et je n'en ai jamais essayé. Voici le contenu de mon fichier de package de déploiement: http://prntscr.com/o4kcjw J'ai eu beaucoup d'erreurs lorsque je l'ai essayé via la CLI sans serveur. Comment puis-je résoudre ce problème?

Je crée et assigne du sélénium, pymsql et chromedriver à Lambda avec virtualenv. (Zippé) J'ai un fichier python dans mon fichier compressé.

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--window-size=960x900')

# Define browser driver
chrome_driver = '/chromedriver-Linux64.exe'
browser = webdriver.Chrome(executable_path=chrome_driver, chrome_options=chrome_options)

{"errorMessage": "Message: exécutable 'chromedriver-Linux64.exe' doit être dans PATH. S'il te plait regarde https://sites.google.com/a/chromium.org/chromedriver/ accueil \ n ",
"errorType": "WebDriverException", "stackTrace": [ "File \" / var / lang / lib / python3.7 / imp.py \ ", ligne 234, dans load_module \ n renvoie load_source (nom, nom de fichier, fichier) \ n", "File \" / var / lang / lib / python3.7 / imp.py \ ", ligne 171, dans load_source \ n module = _load (spec) \ n", "Fichier \" \ ", ligne 696, dans _load \ n", "Fichier \" \ ", ligne 677, dans _load_unlocked \ n", "File \" \ ", ligne 728, dans exec_module \ n", "File \" \ ", ligne 219, dans _call_with_frames_removed \ n", "File \" / var / task / scraping.py \ ", ligne 16, dans \ n browser = webdriver.Chrome (executable_path = chrome_driver, chrome_options = chrome_options) \ n ", "File \" / var / task / selenium / webdriver / chrome / webdriver.py \ ", ligne 73, dans init \ n self.service.start () \ n", "File \" / var / task / selenium / webdriver / common / service.py \ ", ligne 83, dans start \ n os.path.basename (self.path), self.start_error_message) \ n "]}


0 commentaires

5 Réponses :


1
votes

Pourquoi n'utilisez-vous pas le pilote chromé "normal" de https://www.seleniumhq.org/download/ ?

Sur Windows, cela fonctionne pour moi:

driver = webdriver.Chrome(executable_path='D:/myPath/chromedriver.exe')

J'ai installé mon chromedriver, je l'ai décompressé et le chemin où je l'ai enregistré est 'D: / myPath / '(juste un exemple)


1 commentaires

Je l'ai fait, mais cela n'a plus fonctionné. .zip dans AWS Lambda.



0
votes

Supposons que la structure de vos répertoires ressemble à ceci:

project
| main.py
| chromedriver-Linux64

Vous devriez avoir le binaire chromedriver au même niveau que vos fichiers de projet. Modifiez également le chemin d'accès pointant vers le binaire chromedriver de /chromedriver-Linux64.exe à ./chromedriver-Linux64.exe . Le chemin que vous avez actuellement recherche le binaire dans le dossier racine, plutôt que dans le répertoire actuel. Le . signifie regarder dans le répertoire dans lequel se trouve ce fichier.


2 commentaires

J'envoie à 'chromedriver / chromedriver-Linux64.exe' mais je ne peux pas courir.


À quoi ressemble votre structure de répertoires?



0
votes

Écrivez votre chemin quelque chose comme ceci

"C: \ Users \ arjun.bhardwaj \ Downloads \ drvr \ chromedriver.exe


1 commentaires

mais mon projet doit fonctionner sur AWS Lambda; n'est-ce pas ridicule?



2
votes

AWS Lambda s'exécute sous Linux. Vous devez télécharger le linux chromedriver et le nom du fichier n'a pas .exe à la fin. Il ne devrait s'agir que de chromedriver


0 commentaires

0
votes
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
#can use below if pip/sudo install webdriver_manager
from webdriver_manager.chrome import ChromeDriverManager

chrome_options = Options()
chrome_options.add_argument('--headless')
#this below not really required if using --headless`enter code here`
chrome_options.add_argument('--window-size=960x900') 
# You can use the below to run
browser = webdriver.Chrome(executable_path=ChromeDriverManager().install(), chrome_options=chrome_options)
browser.get('https://www.google.com/')

0 commentaires