Zum Fußzeileninhalt springen
PYTHON-HILFE

Web-Scraping mit BeautifulSoup in Python

Python-Entwickler können jetzt dank der Kombination von Beautiful Soup und IronPDF dynamische PDFs erstellen und das Web-Scraping optimieren. Entwickler können mit Beautiful Soup, das für seine Fähigkeit, HTML- und XML-Dateien zu analysieren, bekannt ist, alle Daten aus Webquellen leicht und präzise extrahieren. IronPDF ist derweil ein leistungsfähiges Werkzeug mit nahtloser Integration und soliden Fähigkeiten, das programmgesteuert zur Erstellung von PDF-Dokumenten verwendet werden kann.

Zusammen ermöglichen diese beiden leistungsstarken Tools Entwicklern, Prozesse wie das Erstellen von Rechnungen, das Archivieren von Inhalten und das Erstellen von Berichten mit unvergleichlicher Effizienz zu automatisieren. Wir werden in dieser einführenden Untersuchung die Nuancen der Beautiful Soup Python-Bibliothek und IronPDF beleuchten und sowohl ihre jeweils eigenen Vorzüge als auch ihr revolutionäres Potenzial, wenn sie kombiniert werden, hervorheben. Kommen Sie mit uns, während wir die Möglichkeiten erkunden, die Python-Entwickler durch die vollständige Nutzung von Web-Scraper und PDF-Erstellung erwarten.

Beautiful Soup Python (Wie es für Entwickler funktioniert): Abbildung 1 - Beautiful Soup-Startseite

HTML/XML-Parsing

Beautiful Soup beherrscht das Parsing von HTML-Tags und XML-Dokumenten sehr gut und verwandelt sie in manipulierbare Parse-Bäume, die erkundet werden können. Es verarbeitet sanft fehlerhafte HTML-Elemente, sodass Entwickler mit unvollständigen Daten arbeiten können, ohne sich um Parsing-Probleme kümmern zu müssen.

Finden spezifischer Elemente auf der HTML-Seite

Die benutzerfreundlichen Navigationsmethoden von Beautiful Soup machen es einfach, bestimmte Elemente auf der HTML-Seite zu finden. Mithilfe von Techniken wie search, find_all und select können Entwickler die Baumstruktur navigieren und Elemente basierend auf Tags, Attributen oder CSS-Selektoren präzise anvisieren.

Zugriff auf Tag-Eigenschaften und Inhalte

Beautiful Soup bietet einfache Methoden, um die Eigenschaften und Inhalte eines Elements abzurufen, sobald es innerhalb des Parse-Baums lokalisiert wurde. Entwickler können auf jedes benutzerdefinierte Attribut zugreifen, das mit dem Tag verknüpft ist, sowie auf das href-Attribut und andere wie class und id. Für die weitere Verarbeitung können sie auch auf das innere HTML-Element eines Elements oder den Textinhalt zugreifen.

Suche und Filterung

Beautiful Soup hat starke Such- und Filterfunktionen, die es Entwicklern ermöglichen, Komponenten gemäß verschiedener Kriterien zu lokalisieren. Sie können auch reguläre Ausdrücke für komplexere Übereinstimmungsmuster verwenden. Sie können nach bestimmten Tags suchen und Elemente basierend auf Eigenschaften oder CSS-Klassen filtern. Sie können dies weiter mit der requests-Bibliothek optimieren, um Webseiten zum Parsen abzurufen. Die Möglichkeit, spezifische Daten aus HTML/XML-Dokumenten zu extrahieren, wird durch diese Flexibilität erleichtert.

Navigieren im Parse-Baum

Innerhalb der Dokumentstruktur können Entwickler im Parse-Baum nach oben, unten und seitwärts navigieren. Der Zugriff auf Eltern-, Geschwister- und Kindelemente wird von Beautiful Soup ermöglicht, wodurch es einfacher wird, die Dokumenthierarchie im Detail zu erkunden.

Datenerfassung

Eine grundlegende Funktion von Beautiful Soup ist die Fähigkeit, Daten aus HTML- und XML-Texten zu extrahieren. Entwickler können problemlos Text, Links, Fotos, Tabellen und andere Inhaltselemente aus Webseiten extrahieren. Aus komplexen Dokumenten können sie bestimmte Datenpunkte oder ganze Inhaltsblöcke extrahieren, indem sie Navigations-, Filter- und Traversierungsalgorithmen integrieren.

Umgang mit Kodierungen und Entitäten

Beautiful Soup kümmert sich automatisch um Zeichenkodierungen und HTML-Webentitäten und stellt sicher, dass Textdaten korrekt verarbeitet werden, trotz Kodierungsprobleme oder Sonderzeichen. Diese Funktion erleichtert die Arbeit mit Webmaterial aus verschiedenen Quellen, indem die Notwendigkeit für Entschlüsselung von Entitäten oder manuelle Kodierungskonvertierung entfällt.

Parse-Baum-Modifikation

Beautiful Soup ermöglicht nicht nur die Extraktion, sondern auch die dynamische Änderung des Parse-Baums durch Entwickler. Sie können die Struktur des Dokuments bei Bedarf umstrukturieren, Tags und Attribute hinzufügen, entfernen oder ändern oder neue Elemente hinzufügen. Diese Funktion ermöglicht es, Operationen innerhalb des Dokuments durchzuführen, wie Datenreinigung, Inhaltsanreicherung und strukturelle Änderungen.

Beautiful Soup für Python erstellen und konfigurieren

Wahl eines Parsers

Um HTML- oder XML-Dokumente zu verarbeiten, benötigt Beautiful Soup einen Parser. Es verwendet standardmäßig den in Python integrierten html.parser. Für eine bessere Effizienz oder mehr Kompatibilität mit bestimmten Dokumenten können Sie andere Parser wie lxml oder html5lib angeben. Beim Erstellen eines BeautifulSoup-Objekts können Sie den Parser angeben:

from bs4 import BeautifulSoup

# Specify the parser (e.g., 'lxml' or 'html5lib')
html_content = "<html>Your HTML content here</html>"
soup = BeautifulSoup(html_content, 'lxml')
from bs4 import BeautifulSoup

# Specify the parser (e.g., 'lxml' or 'html5lib')
html_content = "<html>Your HTML content here</html>"
soup = BeautifulSoup(html_content, 'lxml')
PYTHON

Einrichten von Parsing-Optionen

Beautiful Soup bietet einige Optionen, um die Arbeitsweise des Parsings zu ändern. Sie können zum Beispiel Funktionen deaktivieren, die HTML-Entitäten in Unicode-Zeichen umwandeln oder eine strengere Parsing-Option aktivieren. Wenn ein BeautifulSoup-Objekt erstellt wird, werden diese Einstellungen als Argumente angegeben. Hier ist ein Beispiel, wie die Entitätenumwandlung ausgeschaltet wird:

from bs4 import BeautifulSoup

# Disable entity conversion
html_content = "<html>Your HTML content here</html>"
soup = BeautifulSoup(html_content, 'html.parser', convert_entities=False)
from bs4 import BeautifulSoup

# Disable entity conversion
html_content = "<html>Your HTML content here</html>"
soup = BeautifulSoup(html_content, 'html.parser', convert_entities=False)
PYTHON

Kodierungserkennung

Beautiful Soup bemüht sich automatisch, die Kodierung des Dokuments zu bestimmen. Aber gelegentlich, insbesondere wenn der Inhalt unklar ist oder Kodierungsprobleme aufweist, müssen Sie möglicherweise die Kodierung explizit angeben. Beim Erstellen des BeautifulSoup-Objekts haben Sie die Möglichkeit, die Kodierung festzulegen:

from bs4 import BeautifulSoup

# Specify the encoding (e.g., 'utf-8')
html_content = "<html>Your HTML content here</html>"
soup = BeautifulSoup(html_content, 'html.parser', from_encoding='utf-8')
from bs4 import BeautifulSoup

# Specify the encoding (e.g., 'utf-8')
html_content = "<html>Your HTML content here</html>"
soup = BeautifulSoup(html_content, 'html.parser', from_encoding='utf-8')
PYTHON

Ausgabeformatierung

Standardmäßig fügt Beautiful Soup dem analysierten Inhalt Zeilenumbrüche und Einzüge hinzu, um das Lesen zu erleichtern. Auf der anderen Seite können Sie beim Erstellen des BeautifulSoup-Objekts die formatter-Option angeben, um die Ausgabeformatierung zu ändern. Zum Beispiel, um Pretty-Printing auszuschalten:

from bs4 import BeautifulSoup

# Disable pretty-printing
html_content = "<html>Your HTML content here</html>"
soup = BeautifulSoup(html_content, 'html.parser', formatter=None)
from bs4 import BeautifulSoup

# Disable pretty-printing
html_content = "<html>Your HTML content here</html>"
soup = BeautifulSoup(html_content, 'html.parser', formatter=None)
PYTHON

NavigableString und Tag Subklassen

Sie können ändern, welche Klassen Beautiful Soup für NavigableString und Tag-Objekte verwendet. Dies könnte helfen, die Fähigkeiten von Beautiful Soup zu erweitern oder es mit anderen Bibliotheken zu integrieren. Beim Erstellen des BeautifulSoup-Objekts können Sie Subklassen von NavigableString und Tag als Parameter übergeben.

Einstieg

Was ist IronPDF?

Für die programmgesteuerte Erstellung, Bearbeitung und Änderung von PDF-Dokumenten in C#, VB.NET und anderen .NET-Sprachen ist IronPDF eine leistungsstarke .NET-Bibliothek. Es ist eine beliebte Option für viele Anwendungen, da es Entwicklern einen umfassenden Funktionsumfang bietet, um dynamisch hochwertige PDFs zu erstellen.

Beautiful Soup Python (Wie es für Entwickler funktioniert): Abbildung 2 - IronPDF-Startseite

Funktionen von IronPDF

  • PDF-Erstellung: Mit IronPDF können Entwickler HTML-Tags, Text, Bilder und andere Dateiformate in PDFs umwandeln oder mit der Erstellung von PDF-Dokumenten neu beginnen. Diese Fähigkeit ist sehr nützlich für die dynamische Erstellung von Berichten, Rechnungen, Quittungen und anderen Papieren.
  • Konvertieren von HTML in PDF: Mit IronPDF können Entwickler HTML-Strukturen, einschließlich JavaScript und CSS-Stilen, einfach in PDF-Dokumente umwandeln. Dies ermöglicht die Erstellung von PDFs aus HTML-Vorlagen, Webseiten und dynamisch generiertem Material.
  • Bearbeiten und Manipulieren von PDF-Dokumenten: IronPDF bietet eine Vielzahl von Bearbeitungs- und Manipulationsfunktionen für bereits vorhandene PDF-Dokumente. Entwickler können mehrere PDF-Dateien kombinieren, sie in separate Dokumente aufteilen, Seiten extrahieren und Lesezeichen, Anmerkungen, Wasserzeichen und mehr hinzufügen, um PDFs nach ihren Spezifikationen anzupassen.

Installation

IronPDF und Beautiful Soup müssen zuerst installiert werden. Pip, der Paketmanager von Python, kann hierfür verwendet werden.

pip install beautifulsoup4 
pip install ironpdf
pip install beautifulsoup4 
pip install ironpdf
SHELL

Bibliotheken importieren

Importieren Sie dann Ihr Python-Skript mit den erforderlichen Bibliotheken.

from bs4 import BeautifulSoup
from ironpdf import IronPdf
from bs4 import BeautifulSoup
from ironpdf import IronPdf
PYTHON

Web-Scraping mit Beautiful Soup

Verwenden Sie Beautiful Soup, um Informationen von einer Website zu extrahieren. Stellen Sie sich vor, wir möchten den Titel und den Inhalt eines Artikels von einer Webseite abrufen.

# HTML content of the article
html_content = """
<html>
<head>
<title>Hello</title>
</head>
<body>
<h1>IronPDF</h1>
<p>This is a sample content of the article.</p>
</body>
</html>
"""
# Create a BeautifulSoup object
soup = BeautifulSoup(html_content, 'html.parser')

# Extract title and content
title = soup.find('title').text
content = soup.find('h1').text + soup.find('p').text

print('Title:', title)
print('Content:', content)
# HTML content of the article
html_content = """
<html>
<head>
<title>Hello</title>
</head>
<body>
<h1>IronPDF</h1>
<p>This is a sample content of the article.</p>
</body>
</html>
"""
# Create a BeautifulSoup object
soup = BeautifulSoup(html_content, 'html.parser')

# Extract title and content
title = soup.find('title').text
content = soup.find('h1').text + soup.find('p').text

print('Title:', title)
print('Content:', content)
PYTHON

PDF mit IronPDF generieren

Lassen Sie uns nun IronPDF verwenden, um ein PDF-Dokument mit den extrahierten Daten zu erstellen.

from ironpdf import IronPdf, ChromePdfRenderer

# Initialize IronPDF
# Create a new PDF document
renderer = ChromePdfRenderer()
pdf = renderer.RenderHtmlAsPdf(
    "<html><head><title>{}</title></head><body><h1>{}</h1><p>{}</p></body></html>".format(title, title, content)
)

# Save the PDF document to a file
pdf.SaveAs("sample_article.pdf")
from ironpdf import IronPdf, ChromePdfRenderer

# Initialize IronPDF
# Create a new PDF document
renderer = ChromePdfRenderer()
pdf = renderer.RenderHtmlAsPdf(
    "<html><head><title>{}</title></head><body><h1>{}</h1><p>{}</p></body></html>".format(title, title, content)
)

# Save the PDF document to a file
pdf.SaveAs("sample_article.pdf")
PYTHON

Dieses Skript nimmt den Titel und Text des Beispielartikels, scrapt ihn und speichert die HTML-Daten als PDF-Datei mit dem Namen sample_article.pdf, die im aktuellen Verzeichnis gespeichert wird.

Beautiful Soup Python (Wie es für Entwickler funktioniert): Abbildung 3 - Beispielausgabe des obigen Codes

Abschluss

Zusammenfassend lässt sich sagen, dass Entwickler, die ihren Datenextraktions- und Dokumentenerstellungs-Workflow optimieren möchten, eine leistungsstarke Kombination aus Beautiful Soup Python und IronPDF finden werden. Die robusten Funktionen von IronPDF ermöglichen die dynamische Erstellung von hochwertigen PDF-Dokumenten, während die einfachen Parsing-Fähigkeiten von Beautiful Soup die Extraktion nützlicher Daten aus Webquellen ermöglichen.

Wenn sie kombiniert werden, bieten diese beiden Bibliotheken Entwicklern die Ressourcen, die sie benötigen, um eine Vielzahl von Operationen zu automatisieren, einschließlich der Erstellung von Rechnungen, Berichten und Web-Scrapings. Die Zusammenarbeit zwischen Beautiful Soup und IronPDF ermöglicht es Entwicklern, ihre Ziele schnell und effektiv zu erreichen, sei es die Extraktion von Daten aus komplexem HTML-Code oder die sofortige Erstellung benutzerdefinierter PDF-Veröffentlichungen.

IronPDF ist preiswert, wenn es im Paket gekauft wird, und kommt mit einer lebenslangen Lizenz. Da das Paket nur $799 kostet, was eine einmalige Zahlung für mehrere Systeme ist, bietet es ein hervorragendes Preis-Leistungs-Verhältnis. Lizenzinhaber haben rund um die Uhr Zugang zu technischem Support online. Für weitere Informationen über die Kosten besuchen Sie bitte die Website. Um mehr über die Angebote von Iron Software zu erfahren, gehen Sie bitte zu dieser Website.

Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender ...

Weiterlesen