2017-01-25 1 views
0

Ich habe versucht, www.zomato.com für mehr als eine Woche zu kratzen und jetzt habe ich meine Probleme über das Netz gesucht, aber ich konnte nicht die richtige Lösung dafür gefunden. also habe ich hier meine Frage gestellt.
Wie kratze ich https Website Daten mit Python und Selen webdriver

Hier ist mein Code für den webscraper.

from selenium import webdriver 
from selenium.webdriver.common.keys import Keys 
from selenium.webdriver.support.ui import Select 
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.common.exceptions import TimeoutException 
from selenium.webdriver.support import expected_conditions as EC 
from selenium.common.exceptions import NoSuchElementException 
from selenium.common.exceptions import NoAlertPresentException 
import sys 
import lxml 
import unittest, time, re 

class Sel(unittest.TestCase): 
    def setUp(self): 
     self.driver = webdriver.PhantomJS(executable_path='\phantomjs.exe')#phantom js 
     self.driver.implicitly_wait(30) 
     self.base_url = "https://www.zomato.com" 
     self.verificationErrors = [] 
     self.accept_next_alert = True 
    def test_sel(self): 
     driver = self.driver 
     delay = 3 
     driver.get(self.base_url + "hyderabad") 
     driver.find_element_by_link_text("All").click() 
     for i in range(1,100): 
      self.driver.execute_script("window.scrollTo(0, document.body.scrollHeight);") 
      time.sleep(4) 
     html_source = driver.page_source 
     data = html_source.encode('utf-8') 


if __name__ == "__main__": 

Wenn ich in Python ausführen 3.4 heißt Verzeichnis/py -3,4 selenium.py Ich erhalte diesen Fehler
selenium-python-phantomJS-SSL.
Kann mir jemand zu diesem Thema helfen?
Mit freundlichen Grüßen.

+0

den Text von Fehlermeldungen einfügen, stellen keine Verbindung zu Screenshots. –

Antwort

0

Zum einen der Screenshot mit Fehlern geschrieben Sie nicht NICHT aus dem Code kommen Sie auf dem Laufenden. Ihr Codebeispiel zeigt, dass Sie webdriver.PhantomJS aufrufen, aber der Screenshot zeigt deutlich, dass Sie den Fehler beim Aufruf von webdriver.Firefox erhalten.

Auch die Fehlermeldung im Screenshot sagt Ihnen genau, was das Problem ist und wie es zu lösen: "geckodriver ausführbare Datei muss in PATH sein".

Um Firefox mit Selen zu verwenden. Sie müssen geckodriver installieren und auf Ihrem PATH verfügbar machen. geckodriver (wie zB chromedriver) ist eine externe Komponente, die nicht mit Firefox oder Selenium ausgeliefert wird, sondern muss separat installiert werden.

können Sie kostenlos herunterladen geckodriver hier: https://github.com/mozilla/geckodriver/releases

+0

Danke wird es in Betracht ziehen. – rakesh

0

Sie müssen die entsprechenden Akzeptieren-Codierung-Header zu Ihrer Anfrage hinzufügen.

'accept-encoding': 'gzip, deflate, sdch, br'

+0

Kamerad Es tut mir leid, aber das funktioniert nicht gleiche Fehler wie zuvor – rakesh

Verwandte Themen