In diesem Artikel erfahren Sie, wie Sie eine Tabelle aus Wikipedia extrahieren und dabei unstrukturierten Webseiteninhalt mit Python in ein strukturiertes Format umwandeln. Dieser Leitfaden behandelt die Grundlagen vom Verständnis der Struktur von Wikipedia-Tabellen bis hin zur Verwendung der Python-Bibliotheken zur Datenextraktion und ist Ihr umfassendes Tutorial zum effizienten und verantwortungsvollen Web Scraping von Wikipedia-Tabellen.

Wenn du möchtest Wikipedia kratzen Daten finden Sie in unserem Leitfaden zum Thema „So scrapen Sie Wikipedia“, das das Extrahieren von Daten wie Seitentitel, Bildern usw. umfasst.

In dieser Anleitung führen wir Sie durch ein einfaches Tutorial zum Web Scraping ausschließlich von Wikipedia-Tabellen.

Um die Wikipedia-Tabelle im Web zu scrapen, verwenden wir BeautifulSoup zusammen mit der Crawlbase-Bibliothek zum Abrufen des HTML-Inhalts.

Struktur der Wikipedia-Tabellen

Wikipedia-Tabellen sind mit einer Kombination aus HTML und Wikitext strukturiert und ermöglichen sowohl visuelle als auch textuelle Bearbeitung. Um eine Tabelle zu identifizieren, die für das Scraping geeignet ist, können Sie nach Funktionen wie sortierbaren Spalten suchen, die in aufsteigender oder absteigender Reihenfolge angeordnet werden können. Die grundlegende Bestandteile einer Wikipedia-Tabelle umfassen das Tabellenstart-Tag, Überschriften, Zeilen, Überschriften und Datenzellen. Diese Elemente werden definiert durch spezifische Symbole in Wikitext, wie z. B. „|“ als Zellentrennzeichen und „—“ als Zeilentrennzeichen. Das Symbol „|+“ wird speziell für Tabellenbeschriftungen verwendet, während „!“ Tabellenüberschriften kennzeichnet.

Tabellen auf Wikipedia können mit CSS gestaltet werden. Attribute wie class, style, scope, rowspan und colspan verbessern die visuelle Darstellung und Datenorganisation und stellen sicher, dass die Tabelle nicht nur informativ, sondern auch zugänglich ist. Es wird empfohlen, CSS-Klassen für das Styling anstelle von Inline-Styles, um Konsistenz und Übersichtlichkeit zwischen verschiedenen Tabellen zu gewährleisten. Darüber hinaus ist die Klasse „wikitable“ wird häufig verwendet, um Tabellen einen Standardstil zuzuweisen und sie so in verschiedenen Artikeln optisch einheitlich zu gestalten.

Das Verständnis der mit Tabellen verknüpften Metadaten ist für ein effektives Datenscraping von entscheidender Bedeutung. Jede Tabelle in einer relationalen Datenbank-ähnlichen Struktur auf Wikipedia besteht aus Zeilen und Spalten, wobei jede Zeile durch einen Primärschlüssel identifiziert wird. Metadaten können Einschränkungen für die Tabelle selbst oder für Werte in bestimmten Spalten enthalten, was zur Aufrechterhaltung der Datenintegrität und -relevanz beiträgt. Wenn Wikipedia abkratzen, ist es wichtig, diese Strukturen und Metadaten zu berücksichtigen, um Tabellen präzise aus Wikipedia zu extrahieren.

So kratzen Sie eine Tabelle aus Wikipedia

Schritt 1: Bibliotheken importieren

Wir importieren die erforderlichen Bibliotheken zum Scrapen der Tabelle aus Wikipedia. Dazu gehören BeautifulSoup zum Parsen von HTML, Pandas zur Datenmanipulation und die CrawlingAPI-Klasse aus der Crawlbase-Bibliothek zum Erstellen von Anfragen zum Abrufen des HTML-Inhalts.

1
2
3
für bs4 importieren BeautifulSuppe
importieren Pandas as pd
für Crawlbase importieren CrawlingAPI

Schritt 2: Web Scraping-Tabelle aus Wikipedia-Seiten

Um eine Tabelle aus einem Abschnitt von Wikipedia in Python zu extrahieren, müssen wir die HTML-Struktur der Webseite untersuchen, die die Tabelle enthält. Dies können Sie tun, indem Sie mit der rechten Maustaste auf die Tabelle klicken und im Kontextmenü „Untersuchen“ auswählen. Diese Aktion zeigt den HTML-Inhalt der Seite an, sodass wir die Tags identifizieren können, in denen unsere Daten gespeichert sind. Normalerweise sind tabellarische Daten in HTML eingeschlossen in <table> Stichworte.

Zielen wir Diese URL die die Tabelle enthält, die wir scrapen möchten. Sobald wir die URL identifiziert haben, können wir mit dem Extrahieren der Tabellendaten aus dem HTML-Inhalt fortfahren.

So kratzen Sie eine Tabelle aus Wikipedia

Schritt 3: Wikipedia-Tabellendaten abrufen

Als nächstes initialisieren wir die CrawlingAPI, um die Tabellendaten von der Wikipedia-Seite abzurufen. Wir übergeben diese Daten an die Funktion scrape_data, um ein BeautifulSoup-Objekt zu erstellen. Dann verwenden wir die Methode select_one(), um die relevanten Informationen zu extrahieren, in diesem Fall die <table> Tag. Da eine Wikipedia-Seite mehrere Tabellen enthalten kann, müssen wir die Tabelle angeben, indem wir entweder das Attribut „class“ oder das Attribut „id“ des <table> -Tag.

Sie können den vollständigen Code unten kopieren und einfügen:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
für bs4 importieren BeautifulSuppe
importieren Pandas as pd
für Crawlbase importieren CrawlingAPI

def kriechen(Seiten-URL, API-Token):
versuchen:
api = CrawlingAPI({'Zeichen': api_token})

# Holen Sie sich den Seiteninhalt
Antwort = api.get(Seiten-URL)

# Überprüfen Sie, ob die Anfrage erfolgreich war
if Antwort['Statuscode'] == 200:
# Daten scrapen
drucken(f"200 Antwort")
Rückkehr scrape_data(Antwort)
sonst:
drucken(f"Fehler: {Antwort}")
Rückkehr Keine
ausgeschlossen Exception as e:
drucken(f"Beim Crawlen ist ein Fehler aufgetreten: {e}")
Rückkehr Keine

def Daten scrapen(Antwort):
versuchen:
# Analysieren Sie den HTML-Inhalt mit Beautiful Soup
Suppe = Schöne Suppe(Antwort['Körper'], 'html.parser')

# Suchen Sie die Tabelle mit den gewünschten Daten
Tabelle = Suppe.select_one('.wikitable')

# Extrahieren Sie Daten aus der ersten gefundenen Tabelle
if Tabelle:
drucken("Tisch gefunden.")
# Lesen Sie die Tabelle in einen DataFrame
df = pd.htmllesen(str(Tisch))
drucken(df)

# Überprüfen Sie, ob Daten extrahiert wurden
if df:
# Speichern Sie den DataFrame in einer CSV-Datei
df [0].to_csv(„wikipedia.csv“, Index=falsch)
drucken(f"Tabellendaten nach wikipedia.csv exportiert")
Rückkehr df
sonst:
drucken("Keine Daten in der Tabelle gefunden.")
Rückkehr Keine
sonst:
drucken("Keine Tabellen gefunden.")
Rückkehr Keine
ausgeschlossen Exception as e:
drucken(f"Bei der Datenextraktion ist ein Fehler aufgetreten: {e}")
Rückkehr Keine

if __name__ == "__hauptsächlich__":
# Geben Sie die URL der Wikipedia-Seite an, die ausgelesen werden soll.
Seiten-URL = 'https://en.wikipedia.org/wiki/List_of_countries_and_dependencies_by_area'
crawlbase_token = „Crawlbase_Token“

# Rufen Sie die Crawl-Funktion auf
crawlen (Seiten-URL, Crawlbase-Token)

Schritt 4: Führen Sie den Code aus, um ihn in einer CSV-Datei zu speichern

Sobald Sie erfolgreich Daten aus einer Wikipedia-Tabelle extrahiert haben, ist es wichtig, diese in einem strukturierten Format zu speichern. Abhängig von Ihren Projektanforderungen können Sie die Daten in den Formaten JSON, CSV oder direkt in einer Datenbank speichern. Diese Flexibilität ermöglicht die Verwendung der Daten in verschiedenen Anwendungen, von der Datenanalyse bis hin zu Machine-Learning-Web-Scraping-Projekte.

Führen Sie den Code mit dem folgenden Befehl noch einmal aus:

1
Python Wikipedia_Scraper.py

Die Codestruktur ermöglicht es uns, die Tabelle von der angegebenen Wikipedia-Seite zu extrahieren, sie mit BeautifulSoup zu verarbeiten und die extrahierten Daten zur weiteren Analyse in einer CSV-Datei zu speichern. Siehe die Beispielausgabe unten:

Aus Wikipedia-Tabelle kopierte Daten

Schlussfolgerung

In diesem Artikel zum Web Scraping einer Wikipedia-Tabelle haben wir uns gemeinsam mit Ihnen auf den Weg gemacht, angefangen beim Verständnis der Grundprinzipien des Web Scrapings, insbesondere mit dem Extrahieren von Tabellen aus Wikipedia mithilfe von Python, über das Einrichten Ihrer Umgebung bis hin zur Umwandlung der Scraping-Daten in ein strukturiertes und sauberes Format, das für die Analyse geeignet ist. Durch die Verwendung leistungsstarker Python-Bibliotheken wie BeautifulSoup, Requests und Pandas haben wir erfolgreich eine Tabelle aus Wikipedia gescrapt.

Egal, ob Sie ein Datenenthusiast sind, der gerne tief in Datensätze eintaucht, oder ein Profi, der seine analytischen Fähigkeiten verbessern möchte, die Fähigkeiten, die Sie hier erworben haben, werden Ihnen als solide Grundlage dienen. Um tiefer in diese faszinierende Welt einzutauchen, Entdecken Sie aufschlussreichere Blogs zu ähnlichen Themen die Ihr Verständnis vertiefen und noch mehr Kreativität in Ihren Projekten wecken können. Hier sind einige schriftliche Tutorials, die Sie interessieren könnten:

Web Scrape Wikipedia

So scrapen Sie Google Scholar-Ergebnisse

Wie man Quora scrapt

So scrapen Sie Websites mit ChatGPT

Dramatiker-Web-Scraping

So scrapen Sie TikTok-Kommentare

FAQs

  1. Wie kann ich eine Tabelle aus einer Wikipedia-Seite extrahieren?

Um eine Tabelle aus Wikipedia zu extrahieren, navigieren Sie einfach zu der Wikipedia-Seite, die die gewünschte Tabelle enthält. Geben Sie die URL in das entsprechende Feld von Crawlbase ein. Crawling API und klicken Sie auf „Senden“. Anschließend können Sie die Tabellendaten entweder in die Zwischenablage kopieren oder als CSV-Datei herunterladen.

  1. Ist es zulässig, Daten aus Wikipedia für den eigenen Gebrauch zu extrahieren?

Ja, das Web Scraping von Wikipedia-Tabellen mit BeautifulSoup und Python ist grundsätzlich zulässig, da viele Benutzer die Inhalte von Wikipedia wiederverwenden. Wenn Sie vorhaben, die Textmaterialien von Wikipedia in Ihren eigenen Veröffentlichungen wie Büchern, Artikeln, Websites usw. zu verwenden, können Sie dies unter der Bedingung tun, dass Sie eine der Lizenzen einhalten, unter denen die Texte von Wikipedia verfügbar sind.

  1. Wie kann ich eine Tabelle direkt aus Wikipedia kopieren?

Um eine Tabelle direkt aus Wikipedia zu kopieren, wählen Sie die Tabelle einfach aus, indem Sie mit der Maus darauf klicken und ziehen. Klicken Sie dann mit der rechten Maustaste und wählen Sie „Kopieren“. Sie können die Tabelle dann mit der Option „Einfügen“ in Ihr Dokument oder eine Tabellenkalkulationsanwendung einfügen.