CodeGym /Java Kurs /Python SELF DE /Extraktion von Texten und Attributen aus HTML-Elementen m...

Extraktion von Texten und Attributen aus HTML-Elementen mit Methoden von BeautifulSoup

Python SELF DE
Level 32 , Lektion 0
Verfügbar

1. Einführung in Methoden der Textextraktion

Heute lernen wir, wie man wertvolle Textdaten und Attribute aus HTML-Elementen extrahiert. Leg dein Machete weg, denn mit BeautifulSoup kann man das Arbeiten mit Code eher mit einem Spaziergang durch einen Herbstgarten vergleichen, wo die Äpfel nur darauf warten, gepflückt zu werden. Bist du bereit, die Früchte deines Lernens zu ernten? Los geht's!

Methoden zur Textextraktion aus HTML-Elementen stehen ganz oben auf unserer To-Do-Liste. Bevor wir mit der Textextraktion beginnen, laden wir die Seite.

Python

import requests
from bs4 import BeautifulSoup

# HTML-Code der Seite laden
url = 'https://example.com'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')

Jetzt haben wir ein soup-Objekt, das die baumartige Struktur unseres HTML-Dokuments enthält. Lass uns den Text aus einem beliebigen Tag-Element extrahieren, zum Beispiel aus einer Überschrift.

Methoden .text und get_text()

Die Eigenschaft .text und die dazugehörige Methode get_text() ermöglichen es, den Textinhalt eines Elements (einschließlich aller verschachtelten Elemente) zu extrahieren.

Python

# Text aus der ersten gefundenen h1-Überschrift extrahieren
h1_tag = soup.find('h1')
print(h1_tag.text)  # oder h1_tag.get_text()

Versuch es selbst: Finde andere Elemente, nutze die Suchmethoden, die wir in den vorherigen Lektionen gelernt haben, und extrahiere deren Text. Du wirst überrascht sein, wie viele Informationen du bekommen kannst!

2. Extraktion von Attributwerten

Texte sind eine Sache, aber manchmal sind wichtige Daten in Attributen versteckt, wie Pässe in Hosentaschen. Stell dir vor, du musst die Adresse eines Links herausfinden oder die URL eines Bildes bekommen (frag mich nicht, warum das nötig sein könnte – vielleicht willst du eine Sammlung von Katzenbildern anlegen).

Extraktion von Attributwerten

Angenommen, wir haben ein Link-Element <a href="https://example.com">Example</a>. Wie bekommen wir den Wert des href-Attributs? Ganz einfach.

Python

# Link extrahieren
a_tag = soup.find('a')
link = a_tag['href']
print("Link:", link)

Dieser Code extrahiert den Wert des href-Attributs. Jede andere nützliche Attribute kannst du auf die gleiche Weise extrahieren.

Versuch, ein Bild zu extrahieren

Die Extraktion einer Bild-URL kann genauso einfach sein. Schauen wir uns den Fall von <img src="image.jpg" alt="Katze"> an.

Python

# Bild-URL extrahieren
img_tag = soup.find('img')
image_url = img_tag['src']
print("Bild-URL:", image_url)

Die Schönheit von BeautifulSoup liegt darin, dass es ermöglicht, Daten einfach zu finden und zu extrahieren, ohne dass wir uns Gedanken darüber machen müssen, wie genau die HTML-Struktur funktioniert.

3. Beispiele für die Extraktion von Texten und Attributen

Es ist Zeit für Beispiele. Lass uns eine etwas komplexere Aufgabe angehen: Alle Links auf der Seite zusammen mit dem Text innerhalb der <a>-Tags extrahieren.

Beispiel: Extraktion aller Links mit Text

Python

# Alle a-Tags finden
a_tags = soup.find_all('a')

# Link und Text ausgeben
for a_tag in a_tags:
    link = a_tag['href']
    text = a_tag.get_text()
    print(f"Text: {text}, Link: {link}")

Wie du siehst, findet die Methode find_all bequem alle Elemente, die den Suchkriterien entsprechen, und die for-Schleife ermöglicht es, jedes einzelne davon zu durchlaufen.

4. Fehlerbehandlung

Vergiss nicht, Fehler zu behandeln. Manchmal kann die HTML-Struktur nicht so sein, wie du es erwartest, oder ein Element hat möglicherweise nicht das erwartete Attribut. Sorge dafür, dass dein Code in solchen Fällen nicht „abstürzt“.

Python

# Beispiel für Fehlerbehandlung bei der Extraktion eines Attributs
try:
    link = a_tag['href']
except KeyError:
    link = None
    print("Attribut href nicht gefunden!")

Dies macht das Skript robuster, und es wird sich wegen eines kleinen Fehlers nicht stoppen.

5. Praktische Anwendung

Im Jahr 2019 teilte ein russischer Unternehmer eine Geschichte darüber, wie sein Unternehmen, das sich auf Daten-Parsing spezialisiert hat, einen Jahresumsatz von 20 Millionen Rubel erreichte. Er betonte, dass die automatisierte Informationsbeschaffung den Wettbewerb nicht einschränkt, sondern vielmehr Unternehmen hilft, sich an den Markt anzupassen.

Zum Beispiel bestellte ein Kunde einen Parser, um täglich den Warenbestand von der Website des Lieferanten zu sammeln, was es ermöglichte, das Sortiment und die Preise in seinem eigenen Online-Shop zeitnah zu aktualisieren. Der Unternehmer hob auch hervor, dass, trotz der Versuche einiger Seiten, das Parsing zu erschweren, moderne Technologien es effizient ermöglichen, solche Hindernisse zu umgehen und Unternehmen Zugang zu den notwendigen Daten für strategische Entscheidungen zu verschaffen.

Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION