Zum Fußzeileninhalt springen
PYTHON-HILFE

Web-Scraping mit BeautifulSoup in Python

Dank der Kombination von Beautiful Soup und IronPDF können Python-Entwickler jetzt dynamische PDFs erstellen und Web-Scraping rationalisieren. Entwickler können mit Beautiful Soup, das für seine Fähigkeiten beim Parsen von HTML- und XML-Dateien bekannt ist, einfach und präzise alle Daten aus Webquellen extrahieren. IronPDF ist ein leistungsfähiges Tool mit reibungsloser Integration und soliden Funktionen, mit dem sich PDF-Dokumente programmgesteuert erzeugen lassen.

Die Kombination dieser beiden leistungsstarken Tools ermöglicht es Entwicklern, Prozesse wie die Erstellung von Rechnungen, die Archivierung von Inhalten und die Erstellung von Berichten mit unübertroffener Effizienz zu automatisieren. In dieser einführenden Untersuchung werden wir uns mit den Nuancen der Beautiful Soup Python-Bibliothek und IronPDF befassen und sowohl ihre separaten Vorzüge als auch ihr revolutionäres Potenzial in Kombination hervorheben. Begleiten Sie uns, wenn wir die Möglichkeiten erkunden, die sich Python-Entwicklern durch die vollständige Nutzung von Web Scraper und PDF-Erstellung bieten.

Beautiful Soup Python (How It Works For Developers): Abbildung 1 - Beautiful Soup Homepage

HTML/XML-Parsing

Beautiful Soup ist sehr gut im Parsen von HTML-Tags und XML-Dokumenten und verwandelt sie in manipulierbare Parse-Bäume, die erforscht werden können. Sie geht behutsam mit fehlerhaften HTML-Elementen um, so dass Entwickler mit unvollständigen Daten umgehen können, ohne sich Gedanken über Parsing-Probleme zu machen.

Bestimmte Elemente auf der HTML-Seite finden

Die benutzerfreundlichen Navigationstechniken 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 in der Baumstruktur navigieren und Elemente auf der Grundlage von Tags, Attributen oder CSS-Selektoren präzise ansteuern.

Merkmale und Inhalte der Zugriffs-Tags

Beautiful Soup bietet einfache Methoden, um die Eigenschaften und Inhalte eines Elements abzurufen, sobald es im Parse-Baum gefunden wurde. Entwickler können jedes benutzerdefinierte Attribut erhalten, das mit dem Tag verknüpft ist, ebenso wie das href-Attribut und andere wie class und id. Zur weiteren Bearbeitung können sie auch auf das innere HTML-Element oder den Textinhalt des Elements zugreifen.

Suchen und Filtern

Beautiful Soup verfügt über starke Such- und Filterfunktionen, die es Entwicklern ermöglichen, Komponenten nach verschiedenen Standards zu finden. Sie können auch reguläre Ausdrücke für kompliziertere Suchmuster verwenden. Sie können nach bestimmten Tags suchen und Elemente anhand von Merkmalen oder CSS-Klassen filtern. Mit der Bibliothek requests können Sie die Übersetzung weiter vereinfachen, indem Sie Webseiten zum Parsen abrufen. Die Fähigkeit, spezifische Daten aus HTML/XML-Dokumenten zu extrahieren, wird durch diese Flexibilität erleichtert.

Navigieren im Parse-Baum

Innerhalb der Dokumentstruktur können sich die Entwickler im Parse-Baum nach oben, unten und seitwärts bewegen. Der Zugriff auf übergeordnete, geschwisterliche und untergeordnete Elemente wird durch Beautiful Soup ermöglicht, was es einfacher macht, die Dokumenthierarchie im Detail zu erkunden.

Datenextraktion

Eine grundlegende Funktion von Beautiful Soup ist die Möglichkeit, Daten aus HTML- und XML-Texten zu extrahieren. Text, Links, Fotos, Tabellen und andere Inhalte können von Entwicklern leicht aus Webseiten extrahiert werden. Sie können aus komplizierten Dokumenten bestimmte Datenpunkte oder ganze Teile des Inhalts extrahieren, indem sie Navigations-, Filter- und Traversalalgorithmen integrieren.

Pflege von Kodierungen und Entitäten

Beautiful Soup kümmert sich automatisch um Zeichenkodierungen und HTML-Web-Entities und stellt sicher, dass die Textdaten trotz Kodierungsproblemen oder Sonderzeichen korrekt verarbeitet werden. Diese Funktion erleichtert die Arbeit mit Webmaterial aus verschiedenen Quellen, da keine Entitätsdekodierung oder manuelle Kodierungskonvertierung mehr erforderlich ist.

Parse Tree Modifikation

Beautiful Soup erleichtert nicht nur die Extraktion, sondern ermöglicht es den Entwicklern auch, den Parse-Baum dynamisch zu verändern. Je nach Bedarf können sie die Struktur des Dokuments 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 z. B. Datenbereinigung, Inhaltserweiterung und strukturelle Änderungen.

Create and Configure Beautiful Soup for Python

Auswahl eines Parsers

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

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 der Parsing-Auswahl

Beautiful Soup bietet einige Möglichkeiten, die Funktionsweise des Parsings zu ändern. Sie können zum Beispiel Funktionen deaktivieren, die HTML-Entities in Unicode-Zeichen umwandeln, oder eine strengere Parsing-Option aktivieren. Wenn ein BeautifulSoup-Objekt erstellt wird, werden diese Einstellungen als Argumente übergeben. Dies ist ein Beispiel dafür, wie die Konvertierung von Entitäten deaktiviert werden kann:

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

Erkennung von Verschlüsselungen

Beautiful Soup bemüht sich automatisch, die Kodierung des Dokuments zu ermitteln. Gelegentlich, insbesondere bei unklaren Inhalten oder Kodierungsproblemen, kann es jedoch erforderlich sein, die Kodierung explizit anzugeben. Beim Erstellen des BeautifulSoup-Objekts haben Sie die Möglichkeit, die Kodierung zu definieren:

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

Ausgangsformatierung

Standardmäßig fügt Beautiful Soup dem geparsten Inhalt Zeilenumbrüche und Einrückungen hinzu, um ihn leichter lesbar zu machen. Andererseits können Sie beim Erstellen des BeautifulSoup-Objekts die Option formatter verwenden, um die Ausgabeformatierung zu ändern. Zur Veranschaulichung: Abschalten des Schönschreibens:

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 Unterklassen

Sie können ändern, welche Klassen Beautiful Soup für NavigableString und Tag Objekte verwendet. Dies könnte dazu beitragen, die Möglichkeiten von Beautiful Soup zu erweitern oder es in andere Bibliotheken zu integrieren. Bei der Konstruktion des BeautifulSoup-Objekts können Sie Unterklassen von NavigableString und Tag als Parameter übergeben.

Einstieg

Was ist IronPDF?

IronPDF ist eine leistungsstarke .NET-Bibliothek für die programmgesteuerte Erstellung, Bearbeitung und Änderung von PDF-Dokumenten in C#, VB.NET und anderen .NET-Sprachen. Es ist eine beliebte Option für viele Anwendungen, da es Entwicklern einen umfangreichen Funktionsumfang zur dynamischen Erstellung hochwertiger PDFs bietet.

Beautiful Soup Python (How It Works For Developers): Abbildung 2 - IronPDF Homepage

Funktionen von IronPDF

  • PDF-Erzeugung: Mit IronPDF können Entwickler HTML-Tags, Text, Bilder und andere Dateiformate in PDFs umwandeln oder ganz neu mit der Erstellung von PDF-Dokumenten beginnen. Zur dynamischen Erstellung von Berichten, Rechnungen, Quittungen und anderen Dokumenten ist diese Fähigkeit sehr hilfreich.
  • Konvertierung von HTML in PDF: IronPDF ermöglicht Entwicklern die einfache Konvertierung von HTML-Strukturen - einschließlich JavaScript- und CSS-Stile - in PDF-Dokumente. Dies ermöglicht die Erstellung von PDFs aus HTML-Vorlagen, Webseiten und dynamisch erstelltem Material.
  • Bearbeiten und Manipulieren von PDF-Dokumenten: IronPDF bietet eine breite Palette von Bearbeitungs- und Manipulationsfunktionen für bereits vorhandene PDF-Dokumente. Um PDFs nach ihren Vorstellungen zu verändern, können Entwickler unter anderem mehrere PDF-Dateien kombinieren, sie in einzelne Dokumente aufteilen, Seiten extrahieren und Lesezeichen, Anmerkungen und Wasserzeichen hinzufügen.

Installation

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

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

Bibliotheken importieren

Importieren Sie dann Ihr Python-Skript unter Verwendung der erforderlichen Bibliotheken.

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

Web Scraping mit Beautiful Soup

Nutzen Sie Beautiful Soup, um Informationen aus 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-Erstellung mit IronPDF

Mit IronPDF können wir nun ein PDF-Dokument mit den extrahierten Daten 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

Das Skript übernimmt den Titel und den Text des Beispielartikels, scrappt ihn und speichert die HTML-Daten als PDF-Datei mit dem Namen beispiel_artikel.pdf, die im aktuellen Verzeichnis gespeichert wird.

Beautiful Soup Python (How It Works For Developers): Abbildung 3 - Beispiel für die Ausgabe des obigen Codes

Abschluss

Zusammenfassend lässt sich sagen, dass Entwickler, die ihre Arbeitsabläufe bei der Datenextraktion und Dokumentenerstellung optimieren möchten, mit Beautiful Soup Python und IronPDF eine leistungsstarke Kombination finden. Die robusten Funktionen von IronPDF ermöglichen die dynamische Generierung professioneller PDF-Dokumente, während die einfachen Parsing-Fähigkeiten von Beautiful Soup die Extraktion nützlicher Daten aus Webquellen ermöglichen.

In Kombination geben diese beiden Bibliotheken Entwicklern die Ressourcen an die Hand, die sie benötigen, um eine Vielzahl von Vorgängen zu automatisieren, einschließlich der Erstellung von Rechnungen, Berichten und Web Scraping. 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 kompliziertem HTML-Code oder die sofortige Erstellung von maßgeschneiderten PDF-Publikationen.

IronPDF ist preisgünstig, wenn es im Paket gekauft wird, und wird mit einer lebenslangen Lizenz geliefert. Da das Paket nur $799 kostet, was eine einmalige Zahlung für mehrere Systeme ist, bietet es einen hervorragenden Wert. Lizenzinhaber können rund um die Uhr auf den technischen Online-Support zugreifen. Weitere Informationen zu diesem Preis finden Sie auf der Website. Weitere Informationen über die Angebote von Iron Software finden Sie auf 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