Überblick
- Lernen Sie Web-Scraping in Python mit der BeautifulSoup-Bibliothek
- Web Scraping ist eine nützliche Technik, um unstrukturierte Daten im Web in strukturierte Daten umzuwandeln
- BeautifulSoup ist eine effiziente Bibliothek, die in Python verfügbar ist, um andere Web-Scratches als urllib
- Für Web-Scraping in Python sind Grundkenntnisse in HTML und HTML-Tags erforderlich
Einführung
Die Notwendigkeit und Bedeutung des Extrahierens von Daten aus dem Web wird immer stärker und klarer.. Alle paar Wochen, Ich befinde mich in einer Situation, in der wir Daten aus dem Web extrahieren müssen, um ein Modell für maschinelles Lernen erstellen.
Zum Beispiel, la semana pasada estábamos pensando en crear un IndexDas "Index" Es ist ein grundlegendes Werkzeug in Büchern und Dokumenten, Dies ermöglicht es Ihnen, die gewünschten Informationen schnell zu finden. Allgemein, Sie wird am Anfang einer Arbeit präsentiert und organisiert die Inhalte hierarchisch, mit Kapiteln und Abschnitten. Die richtige Vorbereitung erleichtert die Navigation und verbessert das Verständnis des Materials, was es zu einer unverzichtbaren Ressource sowohl für Studenten als auch für Fachleute in verschiedenen Bereichen macht.... de picor y sentimiento sobre varios Data Science-Kurse im Internet verfügbar. Dies würde nicht nur die Suche nach neuen Kursen erfordern!, Suchen Sie aber auch im Web nach Ihren Bewertungen und fassen Sie sie dann in einigen Metriken zusammen!
Das ist eines der Probleme / Produkte, deren Wirksamkeit mehr von Web-Scraping und Informationsextraktion abhängt (Datensammlung) welche der Techniken verwendet werden, um die Daten zusammenzufassen.
Notiz: Zu diesem Artikel haben wir auch einen kostenlosen Kurs erstellt: Einführung in Web-Scraping mit Python. Dieses strukturierte Format hilft Ihnen, besser zu lernen.
Möglichkeiten zum Extrahieren von Informationen aus dem Web
Es gibt mehrere Möglichkeiten, Informationen aus dem Web zu extrahieren. Gebrauch von APIs ist wahrscheinlich der beste Weg, um Daten von einer Website zu extrahieren. Fast alle großen Websites wie Twitter, Facebook, Google, Twitter, StackOverflow bietet APIs, um strukturierter auf Ihre Daten zuzugreifen. Wenn Sie über eine API bekommen, was Sie brauchen, ist fast immer der bevorzugte Ansatz gegenüber Web-Scraping. Denn wenn Sie auf strukturierte Daten des Anbieters zugreifen, Warum sollten Sie eine Engine erstellen, um dieselben Informationen zu extrahieren??
Leider, nicht alle Websites bieten eine API. Manche tun es, weil sie nicht wollen, dass die Leser viele Informationen auf strukturierte Weise extrahieren, während andere aufgrund mangelnder technischer Kenntnisse keine API bereitstellen. Was machst du in diesen Fällen? Gut, Wir müssen die Website kratzen, um die Informationen zu erhalten.
Möglicherweise gibt es andere Möglichkeiten wie RSS-Feeds, aber seine Verwendung ist begrenzt und, Daher, Ich werde sie hier nicht in die Diskussion einbeziehen.

Was ist Web-Scraping??
Web Scraping ist eine Computersoftwaretechnik zum Extrahieren von Informationen aus Websites. Diese Technik konzentriert sich hauptsächlich auf die Transformation unstrukturierter Daten (HTML-Format) im Web in strukturierten Daten (DatenbankEine Datenbank ist ein organisierter Satz von Informationen, mit dem Sie, Effizientes Verwalten und Abrufen von Daten. Einsatz in verschiedenen Anwendungen, Von Unternehmenssystemen bis hin zu Online-Plattformen, Datenbanken können relational oder nicht-relational sein. Das richtige Design ist entscheidend für die Optimierung der Leistung und die Gewährleistung der Informationsintegrität, und erleichtert so eine fundierte Entscheidungsfindung in verschiedenen Kontexten.... u hoja de cálculo).
Sie können Web-Scraping auf verschiedene Arten durchführen, inklusive der Nutzung von Google Docs in fast allen Programmiersprachen. Ich würde mich wegen seiner Einfachheit und seines reichhaltigen Ökosystems an Python wenden. Tiene una biblioteca conocida como ‚SchöneSuppe‘ was hilft bei dieser aufgabe. In diesem Artikel, Ich zeige Ihnen den einfachsten Weg, Web-Scraping mit Python-Programmierung zu lernen.
Für diejenigen unter Ihnen, die eine nicht-programmierbare Möglichkeit zum Extrahieren von Informationen aus Webseiten benötigen, sie können auch gucken import.io . Bietet eine GUI-geführte Schnittstelle zum Ausführen aller grundlegenden Web-Scraping-Vorgänge. Hacker können diesen Artikel weiterlesen!!
Bibliotheken, die für Web-Scraping benötigt werden
Wie wir wissen, Felshaken ist eine Open-Source-Programmiersprache. Sie können viele Bibliotheken finden, um eine Funktion auszuführen. Deswegen, Sie müssen die beste Bibliothek finden, die Sie verwenden können. ich bevorzuge Schöne Suppe (Python-Bibliothek), da es einfach und intuitiv zu arbeiten ist. Genau, Ich werde zwei Python-Module verwenden, um Daten zu kratzen:
- Urllib2: Es ist ein Python-Modul, mit dem URLs gesucht werden können. Definieren Sie Funktionen und Klassen, um bei URL-Aktionen zu helfen (einfache und summarische Authentifizierung, Weiterleitungen, Kekse, etc.). Für mehr Details, siehe die Dokumentationsseite. Notiz: urllib2 ist der Name der Bibliothek, die in Python enthalten ist 2. Stattdessen, Sie können die in Python enthaltene urllib.request-Bibliothek verwenden 3. Die Bibliothek urllib.request funktioniert genauso wie urllib.request in Python 2. Denn es ist schon einbezogen keine Installation erforderlich.
- SchöneSuppe: Es ist ein unglaubliches Werkzeug, um Informationen aus einer Webseite zu extrahieren. Sie können damit Tabellen extrahieren, Listen, Absatz und Sie können auch Filter setzen, um Informationen aus Webseiten zu extrahieren. In diesem Artikel, Wir werden die neueste Version von BeautifulSoup verwenden 4. Sie können die Installationsanweisungen in Ihrem Dokumentationsseite.
BeautifulSoup durchsucht die Website nicht für uns. Deswegen, Ich verwende urllib2 in Kombination mit der BeautifulSoup-Bibliothek.
Felshaken hat neben BeatifulSoup noch mehrere andere Optionen für das HTML-Scraping. Hier sind einige andere:
Grundlegendes Konzept: Machen Sie sich mit HTML vertraut (Etiketten)
Während wir das robuste Web machen, Wir kümmern uns um HTML-Tags. Deswegen, wir müssen sie gut verstehen. Wenn Sie bereits die Grundlagen von HTML kennen, Sie können diesen Abschnitt überspringen. Unten ist die grundlegende Syntax von HTML:
Diese Syntax hat mehrere Tags, die unten beschrieben werden:
- : HTML-Dokumente müssen mit einer Typdeklaration beginnen
- Das HTML-Dokument befindet sich zwischen Ja
- Der sichtbare Teil des HTML-Dokuments liegt zwischen Ja
- HTML-Header werden mit dem
zu Etiketten - HTML-Absätze werden mit dem . definiert Etikett
Andere nützliche HTML-Tags sind:
- HTML-Links werden mit dem Etikett, „<ein href =„HTTP://www.test.com“>Dies ist ein Link für test.com</ein> ”
- HTML-Tabellen werden definiert mit
, Reihe wie
und die Zeilen werden in Daten aufgeteilt wie
- Die HTML-Liste beginnt mit
- (chaotisch) Ja
- Importieren Sie die erforderlichen Bibliotheken:
- (sauber). Jedes Element in der Liste beginnt mit
Wenn Sie mit diesen HTML-Tags noch nicht vertraut sind, Ich würde dir auch empfehlen, zu überprüfen Tutorial HTML von W3schools. Dadurch erhalten Sie ein klares Verständnis von HTML-Tags.
Scraping einer Webseite mit BeautifulSoup
Hier, Ich extrahiere Daten aus a Wikipedia-Seite. Unser ultimatives Ziel ist es, eine Liste der Hauptstädte von Bundesstaaten und Territorialunionen in Indien zu extrahieren. Und einige grundlegende Details wie die Einrichtung, die alte Hauptstadt und andere bilden dies Wikipedia-Seite. Lassen Sie uns lernen, indem Sie dieses Projekt Schritt für Schritt durchführen:
#Importieren Sie die Bibliothek, die zum Abfragen einer Website verwendet wird import urllib2 #wenn Sie Python3+ verwenden, urllib.request importieren
#Geben Sie die URL an wiki = "https://en.wikipedia.org/wiki/List_of_state_and_union_territory_capitals_in_India"
#Query the website and return the html to the variable 'page' page = urllib2.urlopen(Wiki) #Für Python 3 Verwenden Sie urllib.request.urlopen(Wiki)#Importieren Sie die Beautiful Soup-Funktionen, um die von der Website zurückgegebenen Daten zu analysieren aus bs4 importieren BeautifulSoup
#Analysieren Sie das HTML in der 'page'-Variable, und speichern Sie es im Format Beautiful Soup Suppe = SchöneSoup(Seite)
- Nutze die Funktion „verschönern“ um die verschachtelte Struktur der HTML-Seite zu sehen
Über, Sie können diese Struktur von HTML-Tags sehen. Auf diese Weise erfahren Sie mehr über die verschiedenen verfügbaren Tags und wie Sie mit ihnen spielen können, um Informationen zu extrahieren.
- Mit HTML-Tags arbeiten
- Suppe. : Gibt den Inhalt zwischen dem öffnenden und schließenden Tag zurück, inklusive Etikett.
In[30]:suppe.titel aus[30]:<Titel>Liste der Hauptstädte von Bundesstaaten und Unionsterritorien in Indien - Wikipedia, Die freie Enzyklopädie</Titel>
- Suppe. .Schnur: Rückgabestring innerhalb des angegebenen Tags
In [38]:Suppe.Titel.Schnur aus[38]:u'Liste der Hauptstädte von Bundesstaaten und Unionsterritorien in Indien - Wikipedia, die freie Enzyklopädie'
- Finde alle Links innerhalb der Tags der Seite :: Wir wissen das, Wir können einen Link mit dem Tag markieren „„. Dann, Wir sollten die Option wählen Suppe. ein und muss die auf der Website verfügbaren Links zurückgeben. Lass es uns tun.
In [40]:Suppe.ein aus[40]:<eine ID="oben"></ein>
Über, Ihr seht, wir haben nur einen Ausweg. Jetzt, um alle Links darin zu extrahieren , wir werden verwenden „finde alle().

Über, alle Links anzeigen, inklusive Titel, Links und andere Informationen. Jetzt, nur die Links anzeigen, wir müssen über jedes Tag a iterieren und dann den Link mit dem Attribut zurückgeben „href“ mit bekommen.

- Finden Sie den richtigen Tisch: Wie wir nach einer Tabelle suchen, um Informationen über Landeshauptstädte zu extrahieren, wir müssen zuerst die richtige Tabelle identifizieren. Schreiben wir den Befehl, um Informationen aus allen zu extrahieren mesa Etiketten.
all_tables=soup.find_all('Tabelle')Jetzt, um die richtige Tabelle zu finden, wir verwenden das Attribut „Klasse“ aus der Tabelle und wir werden sie verwenden, um die richtige Tabelle zu filtern. In Chrome, Sie können den Klassennamen überprüfen, indem Sie mit der rechten Maustaste auf die erforderliche Tabelle der Webseite klicken -> Element prüfen -> Kopieren Sie den Klassennamen ODER gehen Sie zur obigen Befehlsausgabe und suchen Sie den Klassennamen aus der rechten Tabelle.
right_table=suppe.find('Tabelle', class_='wikitable sortierbare Plainrowheaders') rechter_tisch
Über, wir sind in der Lage den richtigen Tisch zu identifizieren. - Extrahieren Sie die Informationen in DataFrame: Hier, wir müssen jede Zeile durchlaufen (tr) und weise dann jedes Element von tr . zu (td) a una VariableIn Statistik und Mathematik, ein "Variable" ist ein Symbol, das einen Wert darstellt, der sich ändern oder variieren kann. Es gibt verschiedene Arten von Variablen, und qualitativ, die nicht-numerische Eigenschaften beschreiben, und quantitative, numerische Größen darstellen. Variablen sind grundlegend in Experimenten und Studien, da sie die Analyse von Beziehungen und Mustern zwischen verschiedenen Elementen ermöglichen, das Verständnis komplexer Phänomene zu erleichtern.... y agregarlo a una lista. Schauen wir uns zuerst die HTML-Struktur der Tabelle an (Ich werde keine Informationen für den Tabellenkopf extrahieren
)
Über, Sie werden vielleicht feststellen, dass das zweite Element von
steht im Etikett , Nein , also müssen wir uns darum kümmern. Jetzt, um auf den Wert jedes Elements zuzugreifen, Wir werden die Option nutzen „suchen nach (Text = wahr)“ mit jedem Element. Sehen wir uns den Code an: #Listen erstellen A=[] B=[] C=[] D=[] E=[] F=[] G=[] für Zeile in right_table.findAll("tr"): Zellen = row.findAll('td') States=row.findAll('th') #So speichern Sie die Daten der zweiten Spalte wenn len(Zellen)==6: #Nur Tabellenkörper extrahieren, keine Überschrift A.anhängen(Zellen[0].finden(text=wahr)) B.anhängen(Zustände[0].finden(text=wahr)) C.anhängen(Zellen[1].finden(text=wahr)) D.anhängen(Zellen[2].finden(text=wahr)) E.anhängen(Zellen[3].finden(text=wahr)) F.anhängen(Zellen[4].finden(text=wahr)) G.anhängen(Zellen[5].finden(text=wahr))#Pandas importieren, um die Liste in einen Datenrahmen zu konvertieren Pandas als pd importieren df=pd.DataFrame(EIN,Spalten=['Number']) df['State/UT']=B df['Admin_Capital']=C df[''Legislative_Capital']=D df['Judiciary_Capital']= E df['Year_Capital']=F df['Former_Capital']=G df
Schließlich, wir haben daten im datenrahmen:

Auf die gleiche Weise, Sie können andere Arten von Web-Scraping mit durchführen „Schöne Suppe“. Dadurch wird Ihr manueller Aufwand zum Sammeln von Webseitendaten reduziert.. Sie können sich auch die anderen Attribute wie .parent . ansehen, .Inhalt, .Nachkommen y .next_sibling, .prev_sibling und verschiedene Attribute zum Navigieren mit Tag-Namen. Diese helfen Ihnen, Webseiten effektiv zu entfernen.Aber, Warum kann ich keine Regex verwenden??
Jetzt, wenn du reguläre Ausdrücke kennst, Sie denken vielleicht, dass Sie mit Regex Code schreiben können, der dasselbe für Sie tun kann. Diese Frage hatte ich auf jeden Fall. Nach meiner Erfahrung mit BeautifulSoup und Regex das gleiche zu tun, Ich entdeckte:
- In BeautifulSoup geschriebener Code ist normalerweise robuster als Code, der mit regulären Ausdrücken geschrieben wurde. Codes, die mit regulären Ausdrücken geschrieben wurden, sollten bei Änderungen an den Seiten geändert werden. Das braucht sogar BeautifulSoup in manchen Fällen, nur ist BeautifulSoup relativ besser.
- Reguläre Ausdrücke sind viel schneller als BeautifulSoup, im Allgemeinen um den Faktor 100 um das gleiche Ergebnis zu liefern.
Deswegen, es kommt auf Geschwindigkeit versus Code-Robustheit an und hier gibt es keinen universellen Gewinner. Wenn die gesuchten Informationen mit einfachen Regex-Deklarationen extrahiert werden können, du musst weitermachen und sie benutzen. Für fast jede komplexe Aufgabe, Ich empfehle BeautifulSoup im Allgemeinen mehr als Regex.
Schlussbemerkung
In diesem Artikel, Wir analysieren die von ihnen verwendeten Web-Scraping-Methoden „SchöneSuppe“ Ja „urllib2“ und Python. Wir gingen auch die Grundlagen von HTML durch und führten Schritt für Schritt Web-Scraping durch, während wir eine Herausforderung lösten.. Ich empfehle Ihnen, dies zu üben und es zu verwenden, um Daten von Webseiten zu sammeln.
Findest du diesen Artikel hilfreich? Teile deine Meinung / Gedanken im Kommentarbereich unten.
Notiz: Zu diesem Artikel haben wir auch einen kostenlosen Kurs erstellt: Einführung in Web-Scraping mit Python. Dieses strukturierte Format hilft Ihnen, besser zu lernen.
Wenn Ihnen das, was Sie gerade gelesen haben, gefällt und Sie weiter über Analytics lernen möchten, abonnieren Sie unsere E-Mails, Folge uns auf Twitter oder wie bei uns Seite auf Facebook.
Verwandt
zusammenhängende Posts:
Abonniere unseren Newsletter
Wir senden Ihnen keine SPAM-Mail. Wir hassen es genauso wie du.
Datenlautsprecher
- Die HTML-Liste beginnt mit



