Der Bedarf an der Extraktion von Daten aus Websites steigt. Bei datenbezogenen Projekten wie Preisüberwachung, Unternehmensanalyse oder Nachrichtenaggregator ist es erforderlich, Daten von Websites zu erfassen. Das manuelle Kopieren und Einfügen von Daten ist ineffizient. In diesem Artikel zeigen wir Ihnen, wie Sie mithilfe von Python und Web Scraping ein “Profi” in der Datenextraktion werden können.
Schritt 0: Einführung
Web Scraping ist eine Technik, die uns helfen, unstrukturierte HTML-Daten in strukturierte Daten umzuwandeln. Neben der Verwendung von Python zum Schreiben des Codes können Sie auch Webseitendaten mit API oder Datenextraktionstools wie Octoparse erhalten.
Einige große Websites wie Airbnb oder Twitter stellen Entwicklern eine API für den Zugriff auf ihre Daten zur Verfügung. API steht für “Application Programming Interface” (Anwendungsprogrammierschnittstelle), damit zwei Anwendungen miteinander kommunizieren können. Für die meisten Menschen ist API der optimale Ansatz, um Daten von einer Website zu erhalten.
Die meisten Websites bieten jedoch keine API-Dienste an. Und selbst wenn sie API anbieten, ist es möglich, dass die Daten Ihre Bedürfnisse nicht erfüllen können. Daher ist das Schreiben eines Python-Skripts zur Erstellung eines Web-Crawlers eine weitere leistungsstarke und flexible Lösung.
Warum sollten wir Python anstelle anderer Sprachen verwenden?
✅ Flexibilität: Alle wissen, dass Websites schnell aktualisiert. Nicht nur der Inhalt, sondern auch die Webstruktur ändert sich häufig. Python ist eine einfach zu verwendende Sprache, da sie dynamisch berechenbar und sehr produktiv ist. Daher können Menschen ihren Code einfach ändern und mit der Geschwindigkeit des Web-Updates Schritt halten.
✅ Leistungsstarke: Python verfügt über eine große Sammlung von ausgereiften Bibliotheken. Zum Beispiel könnten Requests und Beautifulsoup4 uns helfen, URLs abzurufen und Informationen aus Webseiten herauszuziehen. Selenium könnte uns helfen, einige Anti-Scraping-Techniken zu umgehen, indem es Web-Crawlern die Möglichkeit gibt, das menschliche Surfverhalten nachzuahmen. Darüber hinaus sind re, numpy und pandas bei der Bereinigung und Verarbeitung der Daten hilfreich.
Beginnen wir unsere Reise zum Web Scraping mit Python!
Schritt 1: Python-Bibliothek importieren
In diesem Tutorial zeigen wir Ihnen, wie Sie Bewertungen von Yelp abrufen können. Wir werden zwei Bibliotheken verwenden: BeautifulSoup in bs4 und request in urllib. Diese beiden Bibliotheken werden häufig beim Aufbau eines Webcrawlers mit Python verwendet. Der erste Schritt besteht darin, diese beiden Bibliotheken in Python zu importieren, damit wir die Funktionen in diesen Bibliotheken verwenden können.
Schritt 2: Extrahieren Sie den HTML-Code einer Webseite
Wir möchten die Bewertungen von “https://www.yelp.com/biz/milk-and-cream-cereal-bar-new-york?osq=Ice+Cream” extrahieren. Speichern wir also zunächst die URL in einer Variablen namens URL. Dann können wir auf den Inhalt dieser Webseite zugreifen und den HTML-Code in “ourUrl” speichern, indem wir die Funktion urlopen() in request verwenden.
Dann wenden wir BeautifulSoup an, um die Seite zu analysieren.
Nun haben wir das Roh-HTML dieser Website, können wir eine Funktion namens prettify() verwenden, um die Rohdaten zu bereinigen und sie auszudrucken, um die verschachtelte Struktur des HTML zu sehen.
Schritt 3: Finden und scrapen Sie die Bewertungen
Als Nächstes sollten wir die Bewertungen auf dieser Webseite finden, und extrahieren. Jedes Element auf der Webseite hat eine eindeutige HTML-“ID”. Um die ID zu überprüfen, sollen wir sie auf einer Webseite detektieren.
Nachdem wir auf “Inspect element” (oder “Inspect”, je nach Browser) geklickt haben, können wir den HTML-Code der Bewertung sehen.
In diesem Fall befinden sich die Bewertungen unter dem Tag “p”. Wir werden also zunächst die Funktion find_all() verwenden, um den übergeordneten Knoten dieser Bewertungen zu finden. Dann suchen wir in einer Schleife alle Elemente mit dem Tag “p” unter dem übergeordneten Knoten. Nachdem wir alle “p”-Elemente gefunden haben, speichern wir sie in einer leeren Liste namens “review”.
Jetzt erhalten wir alle Bewertungen von dieser Seite. Schauen wir mal, wie viele Bewertungen wir extrahiert haben.
Schritt 4: Reinigen Sie die Bewertungen
Wahrscheinlich haben Sie bemerkt, dass es immer noch einige überflüssige Texte wie “<p lang=’en’>” am Anfang jeder Bewertung, “<br/>” in der Mitte der Bewertungen und “</p>” am Ende jeder Bewertung gibt.
“<br/>” steht für einen einfachen Zeilenumbruch. Wir brauchen keinen Zeilenumbruch in den Übersichten, deswegen löschen wir sie. Außerdem stehen “<p lang=’en’>” und “</p>” für den Anfang und das Ende des HTML-Satzes, die wir ebenfalls löschen sollen.
Schließlich erhalten wir erfolgreich alle sauberen Bewertungen mit weniger als 20 Codezeilen.
Der Artikel ist nur eine Demo, um 20 Bewertungen von Yelp abzurufen. Aber in realen Fällen müssen wir möglicherweise viele andere Situationen bewältigen. Zum Beispiel benötigen wir manchmal Schritte wie Umblättern, um zu anderen Seiten zu gehen und Bewertungen auf anderen Seiten zu extrahieren. Oder wir möchten andere Informationen scrapen, wie den Namen des Rezensenten, den Ort des Rezensenten, die Zeit der Rezession, die Bewertung, das Einchecken usw..
Um den obigen Vorgang zu implementieren und mehr Daten zu erhalten, müssten wir weitere Funktionen und Bibliotheken wie Selenium oder reguläre Ausdrücke erlernen.
Wenn Sie nach einer einfachen Möglichkeit suchen, um Web Scraping zu betreiben, könnte Octoparse die Wahl für Sie. Octoparse ist ein leistungsstarkes Web-Scraping-Tool, mit dem Sie ganz einfach Informationen von Websites erhalten können. Es bietet verschiedene Funktionen wie automatisierte Interaktionen mit den Websites, das Extrahieren von Daten in verschiedenen Formaten und die Planung von Scraping-Aufgaben. Mit Octoparse können Sie Zeit und Mühe sparen, da es sehr benutzerfreundlich ist und keine Programmierkenntnisse erfordert. Probieren Sie es noch heute aus und erleben Sie die Leichtigkeit des Web Scrapings mit Octoparse!
Hier bekommen Sie Octoparse! 🤩
Preis: $0~$249 pro Monat
Packet & Preise: Octoparse Premium-Preise & Verpackung
Kostenlose Testversion: 14-tägige kostenlose Testversion
Herunterladen: Octoparse für Windows und MacOs
Wenn Sie Probleme bei der Datenextraktion haben, oder uns etwas Vorschlägen geben möchten, kontaktieren Sie bitte uns per E-Mail (support@octoparse.com). 💬
Autor*in: Das Octoparse Team ❤️