Web Scraping mit Python: Ein Leitfaden für Anfänger
Veröffentlicht: 2016-10-10In der Big-Data-Welt sind Web-Scraping- oder Datenextraktionsdienste die Hauptvoraussetzungen für Big-Data-Analysen. Das Abrufen von Daten aus dem Internet ist für Unternehmen fast unvermeidlich geworden, um im Geschäft zu bleiben. Die nächste Frage, die sich stellt, ist, wie man als Anfänger mit Web Scraping umgeht.

Daten können mit einer Reihe von Methoden aus einer Webquelle extrahiert oder geschabt werden. Beliebte Websites wie Google, Facebook oder Twitter bieten APIs, um die verfügbaren Daten strukturiert anzuzeigen und zu extrahieren. Dies verhindert die Verwendung anderer Methoden, die möglicherweise nicht vom API-Anbieter bevorzugt werden. Die Anforderung, eine Website zu crawlen, entsteht jedoch, wenn die Informationen nicht ohne Weiteres von der Website angeboten werden. Python, eine Open-Source-Programmiersprache, wird aufgrund ihres einfachen und reichhaltigen Ökosystems häufig für Web Scraping verwendet. Es enthält eine Bibliothek namens „BeautifulSoup“, die diese Aufgabe übernimmt. Werfen wir einen genaueren Blick auf das Web-Scraping mit Python.
Einrichten einer Python-Umgebung:
Um Web Scraping mit Python durchzuführen, müssen Sie zunächst die Python-Umgebung installieren, die es Ihnen ermöglicht, in der Python-Sprache geschriebenen Code auszuführen. Die Bibliotheken führen Daten-Scraping durch;
Beautiful Soup ist eine benutzerfreundliche Python-Bibliothek. Es ist eines der besten Tools zum Extrahieren von Informationen aus einer Webseite. Profis können Informationen von Webseiten in Form von Tabellen, Listen oder Absätzen crawlen. Urllib2 ist eine weitere Bibliothek, die in Kombination mit der BeautifulSoup-Bibliothek zum Abrufen der Webseiten verwendet werden kann. Filter können hinzugefügt werden, um bestimmte Informationen von Webseiten zu extrahieren. Urllib2 ist ein Python-Modul, das URLs abrufen kann.
Für MAC OSX:
Um Python-Bibliotheken auf MAC OSX zu installieren, müssen Benutzer ein Terminal-Win öffnen und die folgenden Befehle einzeln eingeben:
sudoeasy_install pip
Pip installiert BeautifulSoup4
pip lxml installieren
Für Benutzer von Windows 7 und 8:
Benutzer von Windows 7 und 8 müssen sicherstellen, dass zuerst die Python-Umgebung installiert wird. Sobald die Umgebung installiert ist, öffnen Sie die Eingabeaufforderung und finden Sie den Weg zum Stammverzeichnis C:/ und geben Sie die folgenden Befehle ein:
easy_install BeautifulSoup4
easy_installlxml
Sobald die Bibliotheken installiert sind, ist es an der Zeit, einen Data-Scraping-Code zu schreiben.
Ausführen von Python:
Das Daten-Scraping muss für ein bestimmtes Ziel durchgeführt werden, wie z. B. das Crawlen des aktuellen Bestands eines Einzelhandelsgeschäfts. Zunächst ist ein Webbrowser erforderlich, um auf der Website zu navigieren, die diese Daten enthält. Nachdem Sie die Tabelle identifiziert haben, klicken Sie mit der rechten Maustaste auf eine beliebige Stelle und wählen Sie dann das Prüfelement aus der Dropdown-Menüliste aus. Dies führt dazu, dass ein Fenster unten oder an der Seite Ihres Bildschirms erscheint, das den HTML-Code der Website anzeigt. Die Ranglisten erscheinen in einer Tabelle. Möglicherweise müssen Sie die HTML-Daten durchsuchen, bis Sie die Codezeile finden, die die Tabelle auf der Webseite hervorhebt.
Neben BeautifulSoup bietet Python einige andere Alternativen für das HTML-Scraping. Sie beinhalten:
- Schroff
- Kratzspur
- Mechanisieren
Web Scraping wandelt unstrukturierte Daten aus HTML-Code in strukturierte Datenform wie Tabellendaten in einem Excel-Arbeitsblatt um. Web Scraping kann auf viele Arten durchgeführt werden, von der Verwendung von Google Docs bis hin zu Programmiersprachen. Für Personen, die keine Programmierkenntnisse oder technischen Kompetenzen haben, ist es möglich, Webdaten zu erfassen, indem Web-Scraping-Dienste verwendet werden, die gebrauchsfertige Daten von Websites Ihrer Wahl bereitstellen.
HTML-Tags:
Um Web Scraping durchführen zu können, müssen Benutzer über fundierte Kenntnisse von HTML-Tags verfügen. Es kann sehr hilfreich sein zu wissen, dass HTML-Links mit Anker-Tags definiert werden, dh <a>-Tag, „<a href=“https://…“>Der Link muss hier sein </a>“. Eine HTML-Liste besteht aus einer <ul> (ungeordneten) und einer <ol> (geordneten) Liste. Das Listenelement beginnt mit <li>.
HTML-Tabellen werden mit <Table> definiert, Zeilen als <tr> und Spalten werden in Daten als <td> unterteilt;
- <!DOCTYPE html> : Ein HTML-Dokument beginnt mit einer Dokumenttypdeklaration
- Der Hauptteil des HTML-Dokuments in unformatiertem Klartext wird durch <body> - und </body> -Tags definiert
- Die Überschriften in HTML werden mit den Überschriften-Tags von <h1> bis <h5> definiert
- Absätze werden in HTML mit dem <p> -Tag definiert
- Zwischen <html> und </html> ist ein ganzes HTML-Dokument enthalten
Verwenden von BeautifulSoup beim Schaben:

Beim Scrapen einer Webseite mit BeautifulSoup geht es vor allem darum, das endgültige Ziel zu identifizieren. Wenn Sie beispielsweise eine Liste von einer Webseite extrahieren möchten, ist ein schrittweiser Ansatz erforderlich:
- Der erste und wichtigste Schritt besteht darin, die erforderlichen Bibliotheken zu importieren:
#importieren Sie die Bibliothek, die zum Abfragen einer Website verwendet wird
urllib2 importieren
#geben Sie die URL Wiki = „https://“
#Die Website abfragen und den HTML-Code an die Variable 'page' zurückgeben
page = urllib2.urlopen(wiki)
#importieren Sie die Beautiful Soup-Funktionen, um die von der Website zurückgegebenen Daten zu analysieren
aus bs4 importieren BeautifulSoup
#Parse den HTML-Code in der 'page'-Variablen und speichere ihn im Beautiful-Soup-Format
Suppe = schöne Suppe (Seite)
- Verwenden Sie die Funktion „prettify“, um die verschachtelte Struktur der HTML-Seite zu visualisieren
- Arbeiten mit Soup-Tags:
Soup<tag> wird verwendet, um Inhalte zwischen öffnendem und schließendem Tag einschließlich Tag zurückzugeben.
- In[30]:suppe.titel
Out[30]:<title>Liste der Präsidenten in Indien bis 2010 – Wikipedia, die freie Enzyklopädie</title>
- soup.<tag>.string: Rückgabezeichenfolge innerhalb des angegebenen Tags
- In [38]: Suppe.Titel.String
- Out[38]:u 'Liste der Präsidenten in Indien und Brasilien bis 2010 in Indien – Wikipedia, die freie Enzyklopädie'
- Finden Sie alle Links in den <a>-Tags der Seite: Markieren Sie einen Link mit dem Tag „<a>“. Gehen Sie also mit der Option soup.a und es sollte die auf der Webseite verfügbaren Links zurückgeben. Machen wir das.
- In [40]:suppe.a
Aus[40]:<a id="top"></a>
- Finden Sie den richtigen Tisch:
Da nach einer Tabelle gesucht wird, um Informationen über Präsidenten in Indien und Brasilien bis 2010 abzurufen, ist es wichtig, zuerst die richtige Tabelle zu identifizieren. Hier ist ein Befehl zum Crawlen von Informationen, die in allen Tabellen-Tags enthalten sind.
all_tables=uppe.find_all('table')
Identifizieren Sie die richtige Tabelle, indem Sie das Attribut „Klasse“ der Tabelle verwenden, die die richtige Tabelle filtern muss. Überprüfen Sie danach den Klassennamen, indem Sie wie folgt mit der rechten Maustaste auf die erforderliche Tabelle der Webseite klicken:
- Element prüfen
- Kopieren Sie den Klassennamen oder suchen Sie den Klassennamen der rechten Tabelle aus der Ausgabe des letzten Befehls.
right_table=soup.find('table', class_='wikitable sortable plainrowheaders')
right_table
So können wir den richtigen Tisch identifizieren.
- Extrahieren Sie die Informationen in DataFrame: Es ist erforderlich, jede Zeile (tr) zu durchlaufen und dann jedes Element von tr (td) einer Variablen zuzuweisen und zu einer Liste hinzuzufügen. Analysieren wir die HTML-Struktur der Tabelle. (Informationen für Tabellenüberschrift <th> extrahieren)
Um auf den Wert jedes Elements zuzugreifen, muss für jedes Element die Option „find(text=True)“ verwendet werden. Schließlich gibt es Daten im Datenrahmen.
Es gibt verschiedene andere Möglichkeiten, Daten mit „BeautifulSoup“ zu crawlen, die den manuellen Aufwand zum Sammeln von Daten von Webseiten reduzieren. In BeautifulSoup geschriebener Code gilt als robuster als die regulären Ausdrücke. Die Web-Scraping-Methode, die wir besprochen haben, verwendet die Bibliotheken „BeautifulSoup“ und „urllib2“ in Python. Das war eine kurze Anleitung für Anfänger, um mit der Verwendung von Python für Web Scraping zu beginnen.
Bleiben Sie dran für unseren nächsten Artikel darüber, wie sich Web Scraping auf Ihr Umsatzwachstum auswirkt.
Planen Sie, Daten aus dem Internet für Data Science zu erfassen? Wir sind hier um zu helfen. Teilen Sie uns Ihre Anforderungen mit.
