1. Produkte
  2.   Aspose.HTML
  3.   Aspose.HTML FOSS for Python

Aspose.HTML FOSS für Python

Parsen Sie HTML in ein standardskonformes DOM, wenden Sie CSS an und berechnen Sie Stile aus Python — kostenlos, quelloffen und rein Python.

Open-Source Python Bibliothek für HTML Verarbeitung

Aspose.HTML FOSS for Python ist eine kostenlose, quelloffene Bibliothek zum Arbeiten mit HTML-Dokumenten in Python-Anwendungen. Installieren Sie sie mit einem einzelnen git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git-Befehl und beginnen Sie damit, Markup in ein Dokumentobjektmodell zu parsen, Elementbäume zu bauen und zu modifizieren, CSS-Stylesheets anzuhängen, berechnete Stile aufzulösen und mit URLs und Zeichenkodierungen zu arbeiten – alles in reinem Python ohne Browser-Abhängigkeit.

Die Bibliothek stellt ein standardsorientiertes API bereit, das um HTMLDocument, Document, Element und CSSStyleSheet herum aufgebaut ist. Parsen Sie Markup mit HTMLDocument.parse(), erstellen und verbinden Sie Knoten mit Document.create_element() und append_child(), suchen Sie Elemente mit get_element_by_id(), stylen Sie sie über CSSStyleSheet.replace_sync() und die elementbezogene style-Deklaration und lesen Sie das Ergebnis mit Element.get_computed_style() zurück. Niedrigere Bausteine – der HTML Tokenizer, der TreeBuilder, WHATWG-ähnliche URL und URLSearchParams sowie der detect_encoding()-Byte-Stream-Detektor – stehen zur Verfügung, wenn Sie direkte Kontrolle benötigen.

Aspose.HTML FOSS ist unter der MIT-Lizenz veröffentlicht und in reinem Python implementiert, wobei Python 3.10 oder neuer erforderlich ist. Es läuft identisch unter Windows, Linux und macOS – einschließlich CI-Runner, Docker-Container und serverlose Umgebungen. Für die Enterprise-Produktfamilie siehe Aspose.HTML — Enterprise Product Family.

HTML Parsing und DOM-Manipulation

  • Parsen Sie komplette Seiten mit HTMLDocument.parse() oder Fragmente mit HTMLDocument.parse_fragment()
  • Erstellen Sie Dokumente programmgesteuert mit Document.create_element() und append_child()
  • Suchen Sie Knoten mit Document.get_element_by_id() und lesen Sie Markup-Attribute über Element.get_attribute()
  • Setzen Sie Attribute mit Element.set_attribute() und weisen Sie Text über Node.text_content zu
  • Serialisieren Sie jeden Unterbaum zurück zu Markup mit der Funktion serialise()

Wer verwendet DOM-Verarbeitung

  • Backend-Services, die von Benutzern eingereichte HTML vor der Speicherung bereinigen oder neu schreiben
  • Content-Pipelines, die Seitenfragmente in großem Umfang extrahieren oder umstrukturieren
  • Test-Suiten, die in CI die Struktur des erzeugten Markups prüfen

CSS Stylesheets und berechnete Stile

  • Parste Stylesheet-Text mit CSSStyleSheet.replace_sync() und hänge ihn über Document.attach_style_sheet() an
  • Setze Inline-Deklarationen über die style-Eigenschaft des Elements mit CSSStyleDeclaration.set_property()
  • Löse die Kaskade — Spezifität, Inline-gegen-Autor-Regeln und Vererbung — mit Element.get_computed_style()
  • Lese die aufgelösten Werte mit CSSStyleDeclaration.get_property_value() aus

Wer verwendet Style Computation

  • E-Mail- und Newsletter-Tools, die wirksame Stile vor dem Versand überprüfen
  • HTML Sanitizer, die wissen müssen, welchen Stil ein Element tatsächlich rendert
  • Entwickler, die das Kaskaden- und Spezifitätsverhalten außerhalb eines Browsers debuggen

Tokenizer und Baumkonstruktion

  • Steuern Sie den HTML Tokenizer direkt mit Tokenizer.tokenize() oder Tokenizer.tokenize_fragment()
  • Führen Sie eine standardbasierte Baumkonstruktion mit TreeBuilder.run() durch
  • Parsen Sie Markup direkt zu einem Baum mit der Funktion parse_html()

Wer verwendet Low-Level-Parsing

  • Linters und Analyzer, die Token-Ströme statt fertiger Bäume untersuchen
  • Werkzeuge, die benutzerdefinierte Fehlerbehandlung während der malformed-markup recovery benötigen
  • Bildungsprojekte, die untersuchen, wie standardbasiertes HTML-Parsing funktioniert

URLs und Zeichencodierungen

  • URLs mit URL.parse() und URL.can_parse() parsen und validieren
  • Abfragezeichenfolgen mit URLSearchParams lesen und bearbeiten — append(), get(), has(), delete()
  • Byte-Stream-Kodierungen (BOM und Inhalts-Sniffing) mit detect_encoding() erkennen
  • Kodierungsbezeichnungen mit get_canonical_name() in kanonische Namen normalisieren

Wer verwendet URL- und Kodierungstools

  • Crawler und Fetcher, die URLs zuverlässig auflösen und Duplikate entfernen müssen
  • Ingestion-Pipelines, die Legacy-Dokumente mit gemischten Codierungen verarbeiten
  • Services, die Abfrageparameter serverseitig analysieren oder umschreiben

Erstellen Sie ein DOM und lösen Sie die CSS Kaskade

Erstellen Sie ein Dokument, hängen Sie ein Stylesheet an und lesen Sie den berechneten Stil — der ID-Selektor hat Vorrang vor der Klassenregel:

from aspose_html.dom import Document
from aspose_html.cssom import CSSStyleSheet
doc = Document()
el = doc.create_element("div")
el.set_attribute("class", "foo")
el.set_attribute("id", "bar")
doc.append_child(el)
sheet = CSSStyleSheet()
sheet.replace_sync(".foo { color: red } #bar { color: blue }")
doc.attach_style_sheet(sheet)
style = el.get_computed_style()
print(style.get_property_value("color"))

Inline-Stile haben Vorrang

Inline-Deklarationen haben eine höhere Spezifität als Autor-Stylesheet-Regeln:

from aspose_html.dom import Document
from aspose_html.cssom import CSSStyleSheet
doc = Document()
el = doc.create_element("div")
doc.append_child(el)
sheet = CSSStyleSheet()
sheet.replace_sync("div { color: red }")
doc.attach_style_sheet(sheet)
inline = el.style
inline.set_property("color", "blue")
print(el.get_computed_style().get_property_value("color"))

Zeichencodierung aus Bytes erkennen

Ermitteln Sie die Kodierung eines rohen Bytestroms, einschließlich BOM, und erhalten Sie den dekodierten Text zurück:

from aspose_html.encoding.detection import detect_encoding
result = detect_encoding(b"\xef\xbb\xbf<p>x</p>")
print(result.encoding)
print(result.confidence)
print(result.text)

Häufig gestellte Fragen

Welche Lizenz verwendet Aspose.HTML FOSS for Python?

Die MIT License — kommerzielle Nutzung, Modifikation und Weiterverteilung sind alle erlaubt; die einzige Voraussetzung ist, den Copyright-Hinweis bei wesentlichen Kopien beizubehalten.

Welche Python-Versionen werden unterstützt und wie installiere ich sie?

Python 3.10 oder höher. Installieren Sie mit git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git — die Implementierung ist rein Python ohne native Abhängigkeiten.

Wie parse ich HTML in ein Dokument?

Verwenden Sie HTMLDocument.parse() für komplette Seiten oder HTMLDocument.parse_fragment() für Teil-Markup; Document ist die Fabrik zum programmatischen Erstellen von Bäumen.

Wird die CSS-Kaskade Spezifität und!important korrekt handhaben?

Ja — berechnete Werte folgen der Selektorspezifität, Inline-Deklarationen haben Vorrang vor Autorregeln, !important-Autorregeln haben Vorrang vor nicht-wichtigen Inline-Deklarationen und die Vererbung fließt von Eltern zu Kind.

Rendert die Bibliothek Seiten oder konvertiert sie in andere Formate?

Nein. Die aktuelle Version konzentriert sich auf Parsing, DOM-Manipulation, CSS Stilberechnung, Layout-Strukturen, URLs und Kodierungen — keine Formatkonvertierung oder Bild/PDF-Rendering.

Wird JavaScript beim Parsen automatisch ausgeführt?

Nein. Parsing führt niemals Skripte aus; die Auswertung ist explizit und nur auf Wunsch über JSContext möglich, wobei das Laden von Modulen durch ModuleRegistry und ModuleLoadPolicy gesteuert wird.

  

Support und Lernressourcen

 Deutsch