Funktionen des Web Scraping
Das Abrufen von Daten von Websites mithilfe von Crawlern wird Web Scraping oder Parsing genannt. Es wird eingesetzt, um Internetressourcen wie Kleinanzeigen, Online-Shops, Jobportale usw. zu kopieren. Doch nicht alles ist so einfach, wie es zunächst scheint.

Scraping ist ein ziemlich komplexer und zeitaufwendiger Prozess, der Programmierkenntnisse in Python erfordert. Man muss ein Skript für den Crawler erstellen, bestimmte Seiten crawlen lassen und reguläre Ausdrücke schreiben oder XPath verwenden, um benötigte Daten zu erhalten: Produktname, Preis, Beschreibung, Parameter, Bild usw. Jede Website benötigt einen eigenen Ansatz und ein eigenes Skript; ein Skript für eine Ressource passt meist nicht zu einer anderen. Außerdem ändern Website-Entwickler regelmäßig den HTML-Code, wodurch Skripte nicht mehr korrekt funktionieren. Es ist unpraktisch, den Code jedes Mal zu korrigieren und erneut zu testen; wenn das Skript nicht von Ihnen geschrieben wurde, wird es nahezu unmöglich.

Moderne Websites verwenden häufig AJAX-Anfragen, um Informationen beim Betrachten einer Seite nachzuladen. Zum Beispiel lädt Facebook den Newsfeed beim Scrollen. In solchen Situationen reicht CURL nicht aus, um Informationen zu erhalten; für das Web Scraping solcher Websites ist ein echter Browser erforderlich. Selenium wird zur automatischen Browsersteuerung verwendet. Das Python-Skript sendet Befehle über Selenium an den Browser und erhält den benötigten Text oder HTML-Code.
Erwähnenswert ist auch, dass Python-Skripte bei der Arbeit mit Selenium häufig abstürzen. Man startet das Skript abends in der Hoffnung, morgens frische Daten zu erhalten, doch es stoppt, sobald man den Arbeitsplatz verlässt. Dann muss ein weiteres Skript geschrieben werden, das die Arbeit des ersten überwacht. Am Ende entsteht daraus ein schwerfälliges Parsing-Projekt - und das nur für eine Website.
Aus dem oben Gesagten folgt, dass der Standard-Parsing-Prozess mit Python erhebliche Verbesserungen benötigt. Auf dieser Website finden Sie eine elegante und stabile Lösung für dieses Problem.
