Ein Anfängerleitfaden zum Web -Scraping mit Python und einer schönen Suppe

Ein Anfängerleitfaden zum Web -Scraping mit Python und einer schönen Suppe

Das World Wide Web ist die allumfassende und ultimative Quelle aller Daten, die es gibt. Die schnelle Entwicklung, die das Internet in den letzten drei Jahrzehnten zu verzeichnen hat, war beispiellos. Infolgedessen wird das Netz jeden Tag mit Hunderten von Terabyte Daten montiert.

Alle diese Daten haben einen gewissen Wert für einen bestimmten Menschen. Zum Beispiel hat Ihre Browserhistorie für Social -Media -Apps von Bedeutung, da sie sie verwenden, um die von ihnen angezeigten Anzeigen zu personalisieren. Und es gibt auch viel Konkurrenz um diese Daten. Ein paar MBS mehr Daten können Unternehmen einen erheblichen Vorteil gegenüber ihrem Wettbewerb verleihen.

Data Mining mit Python

Um denjenigen unter Ihnen zu helfen, die neu im Datenkratzer sind, haben wir diesen Leitfaden vorbereitet, in dem wir zeigen, wie Sie Daten mit Python und Beautiful Suppenbibliothek aus dem Internet abkratzen können.

Wir gehen davon aus.

Seien Sie vorsichtig darüber, auf welchen Websites Sie Ihre neu entdeckten Fähigkeiten zur Data Mining -Fähigkeiten ausprobieren, wie viele Websites für dieses aufdringliche Anteil ansehen und wissen, dass es Auswirkungen geben könnte.

Installation und Vorbereitung der Bibliotheken

Jetzt werden wir zwei Bibliotheken verwenden, die wir verwenden werden: Pythons Anforderungsbibliothek zum Laden von Inhalten von Webseiten und der schönen Suppenbibliothek für das eigentliche Kratzbit des Prozesses. Es gibt Alternativen zu BeautifulSoup, wohlgemerkt, und wenn Sie mit einem der folgenden vertraut sind, können Sie diese stattdessen gerne verwenden: Scrappy, Mechanize, Selen, Portia, Kimono und Parsehub.

Die Anforderungsbibliothek kann mit dem PIP -Befehl heruntergeladen und installiert werden wie unter:

# PIP3 -Anfragen installieren

Die Anforderungsbibliothek sollte auf Ihrem Gerät installiert werden. In ähnlicher Weise laden Sie auch BeautifulSoup herunter:

# PIP3 Installieren Sie BeautifulSoup4

Damit sind unsere Bibliotheken bereit für eine Aktion.

Wie oben erwähnt, hat die Anforderungsbibliothek nicht viel verwendet, als den Inhalt von Webseiten abzurufen. Die BeautifulSoup -Bibliothek und die Anfragen von Bibliotheken haben einen Platz in jedem Skript, das Sie schreiben werden, und sie müssen vor jedem wie folgt importiert werden:

$ Importanfragen
$ von BS4 Import BeautifulSoup als BS

Dies fügt das angeforderte Schlüsselwort zum Namespace hinzu und signalisiert es, die Bedeutung des Schlüsselworts zu python, wenn die Verwendung aufgefordert wird. Das gleiche passiert mit dem BS -Schlüsselwort, obwohl wir hier den Vorteil haben, ein einfacheres Schlüsselwort für BeautifulSoup zuzuweisen.

webage = Anfragen.Get (URL)

Der obige Code holt die Webseite URL ab und erstellt eine direkte Zeichenfolge, die sie in eine Variable speichert.

$ webcontent = webage.Inhalt

Der obige Befehl kopiert den Inhalt der Webseite und weist sie dem variablen Webinhalt zu.

Damit sind wir mit der Anfragebibliothek fertig. Es gibt nur noch mehr zu tun, um die Optionen für Anforderungsbibliothek in BeautifulSoup -Optionen zu ändern.

$ htmlContent = bs (WebContent, „HTML.Parser “)

Dies analysiert das Anforderungsobjekt und verwandelt es in lesbare HTML -Objekte.

Damit sich alles erledigt hat, können wir uns mit dem eigentlichen Kratzbit fortsetzen.

Web -Scraping mit Python und BeautifulSoup

Machen wir weiter und sehen, wie wir mit BeautifulSoup nach Daten HTML -Objekten kratzen können.

Um ein Beispiel zu veranschaulichen, während wir Dinge erklären, werden wir mit diesem HTML -Snippet arbeiten:

Wir können mit BeautifulSoup auf den Inhalt dieses Snippets zugreifen und ihn für die HTML -Inhaltsvariable verwenden wie unter:


Der obige Code sucht nach den benannten Tags und zeigt ihn dem Benutzer an. Wenn es mehr als ein Tags findet, zeigt es ihnen nacheinander:

Technologie

Um gleichzeitig die in eine Liste genannten Tags zu speichern, geben wir den endgültigen Code wie unter:

Die Ausgabe sollte so zurückkehren:

Um eines der Tags zu beschwören, die Liste zu inzinde und die gewünschte Liste aufzunehmen.

Lassen Sie uns nun sehen. Um A zu trennen, benötigen wir die Tags mit dem Attribut "Tech_head". Geben Sie den folgenden Code ein:


Für Div in Suppe.find_all ('div', attrs = 'class' = 'Tech_head'):

Dies holt das Tag ab.

Du würdest:

Technologie

Alles ohne Tags.

Zuletzt werden wir darüber abdecken, wie Sie den Wert des Attributs in einem Tag auswählen können. Der Code sollte dieses Tag haben:

Um den mit dem SRC -Attribut verbundenen Wert auszuführen, verwenden Sie Folgendes:

htmlContent.Finden Sie ("IMG") ["Src"]

Und die Ausgabe würde sich als:

"Xyzlady.JPG "

Oh Junge, das ist sicher eine Menge Arbeit!

Wenn Sie der Meinung sind, dass Ihre Vertrautheit mit Python oder HTML unzureichend ist oder wenn Sie einfach mit dem Web -Scraping überwältigt sind, mach dir keine Sorgen.

Wenn Sie ein Unternehmen sind, das regelmäßig eine bestimmte Art von Daten erwerben muss, aber das Web-Scraping selbst nicht durchführen kann, gibt es Wege um dieses Problem. Aber wissen Sie, dass es Sie etwas Geld kosten wird. Sie können jemanden finden, der das Kratzen für Sie durchführt, oder Sie können den Premium -Datenservice von Websites wie Google und Twitter erhalten, um die Daten mit Ihnen zu teilen. Diese Teile ihrer Daten durch Einsatz von APIs, diese API -Anrufe sind jedoch pro Tag begrenzt. Abgesehen davon können Websites wie diese ihre Daten sehr schützend sein. Normalerweise teilen viele solcher Websites überhaupt keine ihrer Daten.

Abschließende Gedanken

Bevor wir abschließen, lassen Sie mich Ihnen laut sagen, ob es noch nicht selbstverständlich war. Die Befehle find (), find_all () sind Ihre besten Freunde, wenn Sie mit BeautifulSoup unterwegs sind. Obwohl es viel mehr zu behandeln ist, um Daten mit Python abzuschaffen, sollte dieser Leitfaden für diejenigen unter Ihnen ausreichen, die gerade erst anfangen.