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 "]}
5 Réponses :
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)
Je l'ai fait, mais cela n'a plus fonctionné. .zip dans AWS Lambda.
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.
J'envoie à 'chromedriver / chromedriver-Linux64.exe' mais je ne peux pas courir.
À quoi ressemble votre structure de répertoires?
Écrivez votre chemin quelque chose comme ceci
"C: \ Users \ arjun.bhardwaj \ Downloads \ drvr \ chromedriver.exe
mais mon projet doit fonctionner sur AWS Lambda; n'est-ce pas ridicule?
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
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/')