Semalt: Web Scraping mit Python

Haben Sie einen dieser schrecklichen Momente durchgemacht, in denen Sie kein WLAN haben? Wenn ja, dann haben Sie erkannt, wie viel von dem, was Sie auf Ihrem Computer tun, vom Internet abhängt. Aus purer Gewohnheit werden Sie Ihre E-Mails abrufen, die Instagram-Fotos Ihrer Freunde anzeigen und deren Tweets lesen.

Da so viel Computerarbeit die Webprozesse umfasst, wäre es sehr praktisch, wenn Ihre Programme auch online gehen könnten. Dies ist beim Web Scraping der Fall. Es beinhaltet die Verwendung eines Programms zum Herunterladen und Verarbeiten von Inhalten aus dem Web. Zum Beispiel verwendet Google eine Vielzahl von Scraping-Programmen, um Webseiten für ihre Suchmaschine zu indizieren.

Es gibt viele Möglichkeiten, wie Sie Daten aus dem Internet kratzen können . Viele dieser Methoden erfordern die Beherrschung einer Vielzahl von Programmiersprachen wie Python und R. Mit Python können Sie beispielsweise eine Reihe von Modulen wie Requests, Beautiful Suppe, Webbrowser und Selenium verwenden.

Mit dem Modul "Anfragen" können Sie Dateien einfach aus dem Internet herunterladen, ohne sich um schwierige Probleme wie Verbindungsprobleme, Netzwerkfehler und Datenkomprimierung kümmern zu müssen. Es muss nicht unbedingt mit Python geliefert werden, daher müssen Sie es zuerst installieren.

Das Modul wurde entwickelt, weil Pythons 'urllib2'-Modul viele Komplikationen aufweist, die die Verwendung erschweren. Es ist eigentlich ganz einfach zu installieren. Sie müssen lediglich Pip-Installationsanforderungen über die Befehlszeile ausführen. Anschließend müssen Sie einen einfachen Test durchführen, um sicherzustellen, dass das Modul korrekt installiert wurde. Dazu können Sie '>>> Importanfragen' in die interaktive Shell eingeben. Wenn keine Fehlermeldungen angezeigt werden, war die Installation erfolgreich.

Um eine Seite herunterzuladen, müssen Sie die Funktion 'request.get ()' starten. Die Funktion verwendet eine URL-Zeichenfolge zum Herunterladen und gibt dann ein 'Antwort'-Objekt zurück. Dies enthält die Antwort, die der Webserver für Ihre Anfrage zurückgegeben hat. Wenn Ihre Anfrage erfolgreich ist, wird die heruntergeladene Webseite als Zeichenfolge in der Textvariablen der Antwortobjekte gespeichert.

Das Antwortobjekt verfügt normalerweise über ein Statuscode-Attribut, mit dem Sie feststellen können, ob Ihr Download erfolgreich war. Ebenso können Sie die Methode 'raise_for_status ()' für ein Antwortobjekt aufrufen. Dies löst eine Ausnahme aus, wenn beim Herunterladen der Datei Fehler aufgetreten sind. Auf diese Weise können Sie sicherstellen, dass ein Programm bei einem fehlerhaften Download angehalten wird.

Von hier aus können Sie Ihre heruntergeladene Webdatei mit den Standardfunktionen 'open ()' und 'write ()' auf Ihrer Festplatte speichern. Um jedoch die Unicode-Codierung des Texts beizubehalten, müssen Sie Textdaten durch Binärdaten ersetzen.

Um die Daten in eine Datei zu schreiben, können Sie eine 'for'-Schleife mit der Methode' iter_content () 'verwenden. Diese Methode gibt bei jeder Iteration durch die Schleife Datenmengen zurück. Jede Masse wird in Bytes angegeben, und Sie müssen angeben, wie viele Bytes jede Masse enthalten soll. Wenn Sie mit dem Schreiben fertig sind, rufen Sie 'close ()' auf, um die Datei zu schließen, und Ihr Job ist nun beendet.