9 Stimmen

Wie kann ich Daten in eine Webseite eingeben, um die resultierende Ausgabe mit Python zu scrapen?

Ich bin mit BeautifulSoup und urllib2 vertraut, um Daten von einer Webseite abzurufen. Was aber, wenn ein Parameter in die Seite eingegeben werden muss, bevor das Ergebnis, das ich abrufen möchte, zurückgegeben wird?

Ich versuche, die geografische Entfernung zwischen zwei Adressen mithilfe dieser Website zu ermitteln: http://www.freemaptools.com/how-far-is-it-between.htm

Ich möchte die Seite aufrufen, zwei Adressen eingeben, auf "Anzeigen" klicken und dann die Werte für "Entfernung in der Luft" und "Entfernung im Landverkehr" extrahieren und in einem Wörterbuch speichern können.

Gibt es eine Möglichkeit, mit Python Daten in eine Webseite einzugeben?

6voto

miku Punkte 170688

1voto

Tim Smith Punkte 5817

Ja! Versuchen Sie mechanisieren für diese Art von Web-Screen-Scraping-Aufgaben.

1voto

user2647646 Punkte 101

Ich denke, Sie können auch Folgendes verwenden PySide /PyQt, weil sie einen Browser-Kern von qtwebkit haben, können Sie den Browser steuern, um Seiten zu öffnen, simulieren menschliche Aktionen (füllen, klicken...), dann scrapen Daten von Seiten. FMiner ist eine Web-Scraping-Software, die ich mit PySide entwickelt habe.

Oder Sie können versuchen, phantomjs, es ist eine einfache Bibliothek, um Browser zu steuern, aber nicht es ist javascript nicht Python-Sprache.

0voto

aldnav Punkte 182

Zusätzlich zu den bereits gegebenen Antworten könnten Sie einfach eine Anfrage auf dieser Seite stellen. Mit Ihrem Browser können Sie jederzeit das Verhalten und die Aktionen des Netzwerks (unter Tools/Webentwickler-Tools) überprüfen, wenn Sie mit der Seite interagieren. Z.B.. http://www.freemaptools.com/ajax/getaandb.php?a=Florida_Usa&b=New%20York_Usa&c=6052 -> Abfrage, um die erwartete Ergebnisseite zu erhalten. Fordern Sie diese Seite an und scrapen Sie das gewünschte Feld. IMHO sind Seitenanfragen viel schneller als Screen Scraping (von Fall zu Fall).

Aber natürlich können Sie auch Screen Scraping/Browsersimulationen durchführen (Mechanize, Splitter ) und verwenden Sie Headless-Browser (PhantomJS usw.) oder den Browser-Treiber des gewünschten Browsers.

0voto

r_D Punkte 510

Die Abfrage ist möglicherweise gelöst worden.

Sie können verwenden Selenium WebDriver zu diesem Zweck. Eine Webseite kann mit Hilfe einer Programmiersprache bearbeitet werden. Alle Vorgänge können so ausgeführt werden, als ob ein menschlicher Benutzer auf die Webseite zugreifen würde.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X