Ich schreibe ein Skript, das den kompletten Inhalt einer Webseite speichert. Wenn ich versuche, urllib2 und bs4 zu verwenden, schreibt es nur den Inhalt der Anmeldeseite und keinen Inhalt, nachdem ich zu einer Suche innerhalb der Seite navigiert habe. Wenn ich jedoch auf der Suchergebnisseite eine Strg + S-Taste drücke, wird eine HTML-Datei auf der Festplatte gespeichert, die beim Öffnen in einem Texteditor alle Inhalte aus den Suchergebnissen enthält.Nachricht: 'Geckodriver' ausführbare Datei muss in PATH sein, aber es ist bereits?
Ich habe zu diesem Thema mehrere Beiträge hier gelesen und ich versuche, die Schritte in diesem zu verwenden:
How to save "complete webpage" not just basic html using Python
jedoch nach der Installation von geckodriver und Einstellen der sys Pfadvariablen I Fehler erhalten fortsetzen . Hier ist mein begrenzter Code:
from selenium import webdriver
>>> from selenium.webdriver.common.action_chains import ActionChains
>>> from selenium.webdriver.common.keys import Keys
>>> br = webdriver.Firefox()
Hier wird der Fehler:
Traceback (most recent call last):
File "<interactive input>", line 1, in <module>
File "C:\Python27\lib\site-packages\selenium\webdriver\firefox\webdriver.py", line 142, in __init__
self.service.start()
File "C:\Python27\lib\site-packages\selenium\webdriver\common\service.py", line 81, in start
os.path.basename(self.path), self.start_error_message)
WebDriverException: Message: 'geckodriver' executable needs to be in PATH.
Und hier ist, wo ich die sys Pfadvariablen gesetzt:
ich neu gestartet habe nach Sys Pfad Variable setzen.
UPDATE:
ich jetzt versuchen, die chromdriver zu verwenden, wie dies gerade nach vorne schien. Ich heruntergeladen hromedriver_win32.zip II'm auf einem Windows-Laptop) von chromedriver Download-Seite, stellen Sie den environmetal Variable Pfad: C: \ Python27 \ Lib \ site-packages \ Selen \ WebDriver \ chrome \ chromedriver.exe
aber ich erhalte die ähnlichen folgenden Fehler:
>>> br = webdriver.Chrome()
Traceback (most recent call last):
File "<interactive input>", line 1, in <module>
File "C:\Python27\lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 62, in __init__
self.service.start()
File "C:\Python27\lib\site-packages\selenium\webdriver\common\service.py", line 81, in start
os.path.basename(self.path), self.start_error_message)
WebDriverException: Message: 'chromedriver' executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home
@DL immer noch die gleiche Nachricht. Ich gehe zu Einstellungen-> Erweitert-> Umgebungsvariablen-> Pfad hinzugefügt C: \ Python27 \ selen \ webdriver \ firefox \ geckodriver-v0.17.0-win64 \ geckodriver.exe und C: \ Programme (x86) \ Mozilla Firefox \ firefox.exe – ShaunO
@ShaunO und das ist in Ordnung, aber der Pfad zu Firefox binär wo ist es? Sie müssen suchen, wo Firefox installiert ist und eine Variable dafür machen :). Zum Beispiel werfen Sie einen Blick darauf https://stackoverflow.com/questions/40208051/selenium-using-python-geckodriver-executable-needs-to-be-in-path –
@ShaunO auch Blick auf diesen Kerl, hat eine ähnliche https://github.com/mozilla/geckodriver/issues/90 –