CodeGym /Java Kurs /Python SELF DE /HTML-Parsing mit BeautifulSoup

HTML-Parsing mit BeautifulSoup

Python SELF DE
Level 31 , Lektion 2
Verfügbar

1. Laden und Parsen von HTML-Dokumenten

Kurzüberblick über die Funktionalität

Die Bibliothek requests ist unser "Bote", der sich auf den Weg macht, um den HTML-Code der Webseiten zu holen. Sie führt HTTP-Requests aus und liefert die Seiten wie ein Pizzalieferant – nur ohne "Margherita" und Kartons.

BeautifulSoup hingegen ist unser "Koch", der den erhaltenen HTML-Code mühelos in Zutaten (Tags, Attribute und Text) zerlegt, damit wir sie verwenden können. Es hilft uns, die benötigten Elemente zu finden und alle wichtigen Informationen zu speichern.

Verwendung der Bibliothek requests

Jetzt sind wir bereit, unsere erste HTTP-Anfrage zu machen und den HTML-Code der Seite zu erhalten. Lass uns zum Üben die Seite example.com laden. Diese Seite ist ein echtes Internet-Dinosaurier und perfekt für den Anfang.

Python

import requests

url = 'http://example.com'
response = requests.get(url)

# Prüfen wir, ob alles in Ordnung ist
if response.status_code == 200:
    print("Seite erfolgreich geladen!")
else:
    print("Etwas ist schiefgelaufen. Fehlercode:", response.status_code)

Dieses Programm sendet eine Anfrage an die URL und zeigt Erfolg oder Fehler entsprechend der Antwort an. Wenn alles gut läuft, haben wir den HTML-Code der Seite als Text in der Hand.

Fehlercodes verfolgen

Wenn du das Parsen automatisierst, wirst du oft feststellen, dass die Seite, die geladen werden soll, nicht geladen wird. Die Analyse von Fehlercodes ist daher ein wesentlicher Bestandteil eines Projekts, das mehr als nur ein paar Seiten parst.

Das liegt daran, dass Website-Besitzer es nicht mögen, wenn ihre Daten geparst werden. Erstens ist es eine Belastung für die Website (wenn Tausende von Seiten gleichzeitig geparst werden). Zweitens sind es ihre Daten, und sie verdienen damit Geld. Es gibt viele Möglichkeiten, das Parsen zu verhindern: CAPTCHA, CloudFlare etc.

Für Unternehmen ist es ideal, wenn sie alle ihre Konkurrenten parsen können, aber niemand sie selbst. So eine Art kalten Krieg.

Verwendung von BeautifulSoup zum Parsen von HTML

Mit dem erhaltenen HTML-Code können wir mit Hilfe von BeautifulSoup mit der Analyse beginnen. Das ist, als ob man ein Buch öffnet und den Inhalt liest:

Python

from bs4 import BeautifulSoup

# Übergabe des Inhalts des HTML-Codes an BeautifulSoup
soup = BeautifulSoup(response.text, 'html.parser')

# Schauen wir mal, was drin ist
print(soup.prettify())

Die Methode prettify() formatiert den HTML-Code schön, damit du ihn analysieren kannst. In der nächsten Lektion werden wir in diesem HTML graben wie Kinder im Sandkasten. Und wir werden nach Hause kommen – müde, dreckig, aber glücklich. :)

3. Praxis: Laden und Analysieren von HTML

Um unser Verständnis zu festigen, lass uns eine praktische Übung machen. Wir werden versuchen, Titel und Beschreibung von example.com zu extrahieren. Dazu nutzen wir unsere HTML-Kenntnisse und das neue Wissen über BeautifulSoup.

Daten extrahieren

Python

# Extrahieren des Titels der Seite
title = soup.title.string
print("Seitentitel:", title)

# Extrahieren der Hauptüberschrift (h1)
main_heading = soup.h1.string
print("Hauptüberschrift:", main_heading)

# Extrahieren des Textinhalts eines Paragraphen
paragraph = soup.find('p').text
print("Erster Paragraph:", paragraph)

In diesem Beispiel verwenden wir die Attribute title, h1 und die Methode find(), um die benötigten Informationen aus der Seite zu holen. Wir werden zu Cyber-Detektiven, die Spuren am Tatort untersuchen!

4. Typische Fehler

Sicherlich wirst du bei der Arbeit mit Web-Scraping auf typische Fehler stoßen, die fehlerhafte Verarbeitung von HTTP-Anfragen, falsche Datenextraktion oder Probleme beim Parsen von HTML umfassen können. Die Entwicklung robuster und zuverlässiger Skripte erfordert Geduld und Übung. Überprüfe beispielsweise immer den Statuscode (response.status_code), um sicherzustellen, dass deine Anfrage erfolgreich war. Falsche Verwendung der Methoden find() und find_all() kann zu Fehlern führen, wenn du die Struktur der HTML-Seiten nicht berücksichtigst. Analysiere immer das HTML, bevor du mit dem Parsen beginnst.

Web-Scraping hat viele praktische Anwendungen: von der Datensammlung für Analysen bis zur automatischen Überwachung von Preisen. Dieses Wissen kann bei Vorstellungsgesprächen nützlich sein, bei denen dich nach Beispielen für Projektcode gefragt werden könnte. In der Praxis verwenden beispielsweise Marketer Scraping, um die Preise von Konkurrenten zu überwachen, und Entwickler – für die Integration mit externen Websites.

Deine Kenntnisse über Web-Scraping werden auch nützlich sein, wenn es um die Verarbeitung von Informationen für Nachrichtenaggregatoren und Analysesysteme geht. Du kannst Routineaufgaben automatisieren, indem du Skripte erstellst, die Daten aus verschiedenen Quellen automatisch sammeln. Lass uns unsere virtuelle Anwendung weiterentwickeln und uns wie echte Web-Meister fühlen!

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