undefined
Blog > Wissen > Post

Web Scraping mit Python: Eine Schritt-für-Schritt-Anleitung

Saturday, September 18, 2021

Der Bedarf, Daten aus Websites zu extrahieren, nimmt zu. Bei der Durchführung von datenbezogenen Projekten wie Preisüberwachung, Unternehmensanalyse oder Nachrichtenaggregator müssen wir immer Daten von Websites erfassen. Das zeilenweise Kopieren und Einfügen von Daten ist jedoch nicht effizient. In diesem Artikel zeigen wir Ihnen, wie Sie ein "Profi" bei der Extraktion von Daten aus Websites werden können, nämlich durch Web Scraping mit Python.

 

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.
  • LeistungsstarkePython 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.

import library

 

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.

request url

 

Dann wenden wir BeautifulSoup an, um die Seite zu analysieren.

beautifulsoup

 

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 Bewertuneng sehen.

 node

 

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.

len review

 

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. Lesen Sie bitte diese Anleitung, wie man mit Octoparse Bewertungen von Yelp scrapen. Wenden Sie sich an uns, wenn Sie Probleme beim Web-Scraping gestoßen haben!

 

Autor: Jiahao Wu

 

Relative Artikel

 

 

 

Laden Sie Octoparse herunter, um mit Web-Scraping zu beginnen, oder kontaktieren Sie uns
für die Fragen über Web Scraping!

Kontaktieren Sie uns Herunterladen
btnImg
Diese Website verwendet Cookies um Ihnen ein besseres Internet-Erlebnis zu ermöglichen. Lesen Sie wie wir Cookies verwenden und Sie können sie kontrollieren, indem Sie auf Cookie-Einstellungen klicken. Wenn Sie die Website weiter nutzen, akzeptieren Sie unsere Verwendung von Cookies.
Akzeptieren Ablehnen