Je tente d'exécuter ce script:
https://github.com/Chillee/coursera-dl-all
Cependant, le script échoue à la ligne session = webdriver.PhantomJS()
avec l'erreur suivante
Traceback (most recent call last):
File "dl_all.py", line 236, in <module>
session = webdriver.PhantomJS()
File "/home/<user>/.local/lib/python2.7/site-packages/Selenium/webdriver/phantomjs/webdriver.py", line 51, in __init__
self.service.start()
File "/home/<user>/.local/lib/python2.7/site-packages/Selenium/webdriver/common/service.py", line 69, in start
os.path.basename(self.path), self.start_error_message)
Selenium.common.exceptions.WebDriverException: Message: 'phantomjs' executable needs to be in PATH.
Exception AttributeError: "'Service' object has no attribute 'process'" in <bound method Service.__del__ of <Selenium.webdriver.phantomjs.service.Service object at 0x7f6f632864d0>> ignored
Comment ajouter des phantomjs à mon PATH? Je suis sous ubuntu 16.04 et ai installé Selenium via npm install Selenium
.
J'ai résolu un exemple de problème avec cette commande en ligne de commande
export PATH=${PATH:+$PATH:}/home/<login>/phantomjs/bin
Son travail si/home/login/phantomjs/bin est le chemin du dossier contenant l'exécutable 'phantomjs'.
Solution de travail:
En supposant que vous êtes sur Windows - il en est de même pour linux
1) Téléchargez phantomjs ici: http://phantomjs.org/download.html pick windows/linux en conséquence
2) décompressez votre fichier phantomjs-2.1.1-windows.Zip et enregistrez-le, par exemple, sur le lecteur c, tel que C:\phantomjs-2.1.1-windows\bin (il existe ici un phantomjs.exe besoins du système)
3) Sous Windows 10, modifiez le chemin de votre environnement pour inclure ce dossier bin C:\phantomjs-2.1.1-windows\bin tel que cet exemple
4) vous pouvez ou non redémarrer votre machine. Terminé! ça devrait marcher! (Webdriver recherche phantomjs.exe et il devrait être prêt maintenant)
Vous devez fournir le chemin de l'exécutable. C'est pour Linux ou plus précisément Ubuntu.
Vous devez spécifier le chemin du fichier exécutable (complet), et non le chemin du répertoire contenant l'exécutable.
driver = webdriver.PhantomJS(executable_path='Complete path/to/phantomjs')
Il ne nécessite aucun pilote.
A bien fonctionné pour moi sur Ubuntu 16.04.
Pourquoi n'utilisez-vous pas le moyen le plus simple jamais utilisé et passé le phantomjs.exe
dans le répertoire des scripts Python déjà ajouté à l'environnement système le chemin du répertoire python devrait ressembler à ceci
C:\Users\[user]\AppData\Local\Programs\Python\Python[version]\Scripts
# you can use it as following
from Selenium import webdriver
driver = webdriver.PhantomJS()