Ein Dokument in Python mit Aspose.HTML erstellen – HTML, SVG, MHTML, EPUB erstellen oder laden
Dieser Artikel bietet eine detaillierte Anleitung zur Erstellung eines HTML-Dokuments mit Aspose.HTML for Python via .NET API. Die API bietet die Klasse HTMLDocument, die die Wurzel der HTML-Hierarchie ist und den gesamten Inhalt enthält. Diese Klasse verfügt über eine Reihe von Konstruktoren, mit denen Sie HTML-Dokumente auf unterschiedliche Weise erstellen oder laden können. HTML-Dokumente können von Grund auf als leeres Dokument mit einer HTML-Struktur, aus einer Zeichenkette, aus einem Speicherstrom oder durch Laden aus einer Datei oder URL erstellt werden.
HTML-Dokument
Das
HTMLDocument ist ein Ausgangspunkt für die Aspose.HTML Python Bibliothek. Sie können das HTML-Dokument in das Document Object Model (DOM) laden, indem Sie einen der HTMLDocument()
-Konstruktoren verwenden und dann programmatisch lesen, den Dokumentenbaum ändern, Knoten hinzufügen und entfernen, die Knoteneigenschaften im Dokument ändern, wie es in den offiziellen Spezifikationen beschrieben ist.
Die Klasse “HTMLDocument” bietet eine speicherinterne Darstellung eines HTML DOM, die vollständig mit den W3C DOM und WHATWG DOM Spezifikationen konform ist. Wenn Sie mit den WHATWG DOM, WHATWG HTML und JavaScript Standards vertraut sind, wird die Verwendung der Aspose.HTML for Python via .NET API recht komfortabel und einfach sein.
Ein leeres HTML-Dokument erstellen
Der folgende Python-Codeausschnitt zeigt die Verwendung des Standard- HTMLDocument()-Konstruktors, um ein leeres HTML-Dokument zu erstellen und es in einer Datei zu speichern.
1import os
2from aspose.html import *
3
4# Setup an output directory and prepare a path to save the document
5output_dir = "output/"
6if not os.path.exists(output_dir):
7 os.makedirs(output_dir)
8
9save_path = os.path.join(output_dir, "document-empty.html")
10
11# Initialize an empty HTML document
12document = HTMLDocument()
13
14# Work with the document here...
15
16# Save the document to a file
17document.save(os.path.join(save_path))
Nach der Erstellung erscheint die Datei document-empty.html mit der anfänglichen Dokumentstruktur: Das leere Dokument enthält Elemente wie <html>
<head>
und <body>
. Sobald das Dokumentobjekt erstellt ist, kann es später mit HTML-Elementen gefüllt werden.
Ein neues HTML-Dokument erstellen
Wenn Sie ein HTML-Dokument von Grund auf programmatisch erstellen möchten, verwenden Sie bitte den Konstruktor ohne Parameter, wie im folgenden Codeschnipsel angegeben:
1import os
2from aspose.html import *
3
4# Prepare an output path for saving the document
5output_dir = "output/"
6if not os.path.exists(output_dir):
7 os.makedirs(output_dir)
8
9document_path = os.path.join(output_dir, "create-new-document.html")
10
11# Initialize an empty HTML document
12with HTMLDocument() as document:
13 # Create a text node and add it to the document
14 text = document.create_text_node("Hello, World!")
15 document.body.append_child(text)
16
17 # Save the document to a file
18 document.save(document_path)
Im neuen Dokument haben wir mit der Methode
create_text_node() einen Textknoten mit der angegebenen Zeichenkette erstellt und ihn mit der Methode
append_child() zum Element <body>
hinzugefügt.
Wie man eine HTML-Datei bearbeitet, wird im Artikel HTML-Dokument bearbeiten ausführlich beschrieben.
Weitere Einzelheiten zum Speichern von HTML-Dateien finden Sie im Artikel HTML-Dokument speichern.
HTML aus einer Datei laden
Wenn Sie eine vorhandene HTML-Datei aus einer Datei laden, bearbeiten und speichern möchten, hilft Ihnen der folgende Codeschnipsel:
1import os
2from aspose.html import *
3
4# Setup directories and define paths
5output_dir = "output/"
6input_dir = "data/"
7if not os.path.exists(output_dir):
8 os.makedirs(output_dir)
9
10document_path = os.path.join(input_dir, "document.html")
11save_path = os.path.join(output_dir, "document-edited.html")
12
13# Initialize a document from a file
14document = HTMLDocument(document_path)
15
16# Work with the document
17
18# Save the document to disk
19document.save(os.path.join(save_path))
Im obigen Beispiel richtet der Python-Code Verzeichnisse und Pfade zum Lesen eines HTML-Dokuments aus dem Verzeichnis “data” und zum Speichern einer bearbeiteten Version im Verzeichnis “output” ein. Er initialisiert das HTML-Dokument aus der angegebenen Datei, verarbeitet es und speichert dann das bearbeitete Dokument in dem angegebenen Ausgabepfad.
HTML von einer URL laden
Eine der meistgenutzten Funktionen des Internets ist die Möglichkeit, Dateien auszuwählen und mit ihnen auf dem lokalen Gerät des Benutzers zu interagieren. Im nächsten Python-Codefragment sehen Sie, wie eine Webseite in das HTMLDocument geladen wird.
Wenn Sie eine falsche URL übergeben, die im Moment nicht erreichbar ist, löst die Bibliothek die
PlatformException mit dem speziellen Code NetworkError
aus, um Sie zu informieren, dass die ausgewählte Ressource nicht gefunden werden kann.
1from aspose.html import *
2
3# Load a document from the URL
4document = HTMLDocument("https://docs.aspose.com/html/files/document.html")
5
6# Write the document content to the output stream
7print(document.document_element.outer_html)
Im obigen Beispiel haben wir die Datei document.html angegeben, die von der URL geladen werden soll.
Laden aus HTML-Code
Falls Ihr HTML-Code verknüpfte Ressourcen (Stile, Skripte, Bilder usw.) enthält, müssen Sie dem Konstruktor des Dokuments einen gültigen Parameter base_uri
übergeben. Er wird verwendet, um den Speicherort der Ressource während des Ladens des Dokuments aufzulösen.
HTML aus einem String laden
Sie können ein Dokument aus einem String-Inhalt erstellen, indem Sie einen der HTMLDocument() Konstruktoren verwenden. Wenn Sie ein Dokument aus einem Benutzerstring direkt in Ihrem Code erstellen und in einer Datei speichern möchten, könnte Ihnen das folgende Beispiel helfen. Wir erstellen ein HTML-Dokument, das den Text “Hello, World!” enthält
1import os
2from aspose.html import *
3
4# Prepare HTML code
5html_code = "<p>Hello, World!</p>"
6
7# Setup output directory
8output_dir = "output/"
9if not os.path.exists(output_dir):
10 os.makedirs(output_dir)
11
12# Initialize a document from the string variable
13document = HTMLDocument(html_code, ".")
14
15# Save the document to disk
16document.save(os.path.join(output_dir, "create-html-from-string.html"))
HTML aus einem Stream laden
Wenn Sie einen HTML-Code als speicherinterne
io.BytesIO-Objekte vorbereiten, brauchen Sie diese nicht in der Datei zu speichern, sondern übergeben Ihren HTML-Code einfach an spezielle Konstruktoren. Im folgenden Beispiel wird zur Erstellung eines HTML-Dokuments aus einem Stream der Konstruktor HTMLDocument(content, base_uri)
verwendet:
1import os
2import io
3from aspose.html import *
4
5# Prepare an output path for saving the document
6output_dir = "output/"
7if not os.path.exists(output_dir):
8 os.makedirs(output_dir)
9
10# Use BytesIO and pass a bytes string to it.
11content_stream = io.BytesIO(b"<p>Hello, World!</p>")
12base_uri = "."
13
14# Initialize a document from the content stream
15document = HTMLDocument(content_stream, base_uri)
16
17# Save the document to a file
18document.save(os.path.join(output_dir, "load-from-stream.html"))
die Funktion io.BytesIO
erzeugt ein Stream-Objekt, das sich vollständig im Speicher befindet. Dies ist nützlich für die temporäre Datenspeicherung, ohne auf die Festplatte schreiben zu müssen.
SVG-Dokument
Scalable Vector Graphics (SVG) ist Teil des [W3C]-Standards(16) und kann in ein HTMLDokument eingebettet werden; wir haben die Klasse SVGDocument mit voller SVG-Funktionalität auf der Grundlage der offiziellen SVG2-Spezifikation implementiert. Damit können Sie SVG-Dokumente in Übereinstimmung mit dem Standard laden, lesen und bearbeiten.
Da sowohl SVGDocument
als auch HTMLDocument
auf demselben
WHATWG DOM-Standard basieren, sind Vorgänge wie das Laden, Lesen, Bearbeiten, Konvertieren und Speichern für beide Arten von Dokumenten ähnlich. Daher gelten alle Beispiele, die die Manipulation mit HTMLDocument
zeigen, auch für SVGDocument
.
Sie können ein Dokument aus einem String-Inhalt erstellen, indem Sie den entsprechenden
SVGDocument() Konstruktor verwenden. Wenn Sie ein SVG-Dokument aus einer content_stream
-Variablen in den Speicher laden wollen und es nicht in einer Datei speichern müssen, zeigt das folgende Beispiel, wie das geht:
1import io
2from aspose.html.dom.svg import *
3
4# Initialize an SVG document from a string object
5svg_content = "<svg xmlns="http://www.w3.org/2000/svg"><circle cx="50" cy="50" r="50"/></svg>"
6base_uri = "."
7content_stream = io.BytesIO(svg_content.encode("utf-8"))
8
9document = SVGDocument(content_stream, base_uri)
10
11# Write the document content to the output stream
12print(document.document_element.outer_html)
Im obigen Beispiel haben wir das SVG-Dokument erstellt, das einen Kreis mit einem Radius von 50 Pixeln enthält. Mehr über die Arbeit mit SVG-Dokumenten erfahren Sie in der Dokumentation Aspose.SVG for Python via .NET.
MHTML-Dokument
MHTML ist ein Format zur Archivierung von Webseiten. Es bündelt den HTML-Inhalt einer Webseite zusammen mit allen zugehörigen Ressourcen, wie CSS, JavaScript, Bilder und Audiodateien, in einer einzigen Datei. MHTML wird häufig von Webentwicklern verwendet, um einen Schnappschuss einer Webseite für Archivierungszwecke zu speichern. Die Aspose.HTML Python-Bibliothek unterstützt nur das Rendern/Konvertieren von MHTML-Dateien in verschiedene Ausgabeformate. Weitere Informationen finden Sie in dem Artikel Konvertierung zwischen Formaten.
EPUB-Dokument
EPUB ist ein weithin unterstütztes Format für eBooks und elektronische Publikationen, das mit den meisten Lesegeräten kompatibel ist, darunter Smartphones, Tablets und Computer. Ähnlich wie MHTML unterstützt Aspose.HTML nur das Rendern von EPUB-Dateien in verschiedene Ausgabeformate. Weitere Details finden Sie im Artikel Konvertierung zwischen Formaten.
Laden Sie die Bibliothek Aspose.HTML for Python via .NET herunter, um Ihre HTML-Dokumente erfolgreich, schnell und einfach zu bearbeiten. Die Python-Bibliothek kann HTML-Dokumente erstellen, ändern, Daten extrahieren, konvertieren und rendern, ohne dass Sie externe Software benötigen. Sie unterstützt gängige Dateiformate wie EPUB, MHTML, XML, SVG und Markdown und kann in die Dateiformate PDF, DOCX, XPS und Image gerendert werden.
Aspose.HTML bietet einen kostenlosen Online- HTML-Konverter zur Konvertierung von HTML-Dokumenten in eine Vielzahl von gängigen Formaten. Laden Sie einfach HTML aus einer Datei oder einer URL, wählen Sie das zu konvertierende Format, und schon sind Sie fertig. Das geht schnell und ist völlig kostenlos!