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

Aspose.HTML FOSS för Python

Analysera HTML till en standardbaserad DOM, tillämpa CSS och beräkna stilar från Python — gratis, öppen källkod och ren Python.

Open-Source Python Bibliotek för HTML Bearbetning

Aspose.HTML FOSS for Python är ett gratis, öppen källkod-bibliotek för att arbeta med HTML-dokument i Python-applikationer. Installera det med ett enda git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git-kommando och börja parsning av markup till ett dokumentobjektmodell, bygga och modifiera elementträd, bifoga CSS-stilmallar, lösa upp beräknade stilar och arbeta med URL:er och teckenkodningar — allt i ren Python utan webbläsardependenser.

Biblioteket exponerar en standardorienterad API byggd kring HTMLDocument, Document, Element och CSSStyleSheet. Parsar markup med HTMLDocument.parse(), skapa och anslut noder med Document.create_element() och append_child(), slå upp element med get_element_by_id(), stil dem via CSSStyleSheet.replace_sync() och elementnivå-deklarationen style, och läs tillbaka resultatet med Element.get_computed_style(). Lägre-nivå byggstenar — HTML Tokenizer, TreeBuilder, WHATWG-stil URL och URLSearchParams, samt detect_encoding()-detektorn för byte-strömmar — finns tillgängliga när du behöver direkt kontroll.

Aspose.HTML FOSS är MIT-licensierat och implementerat i ren Python, och kräver Python 3.10 eller senare. Det körs identiskt på Windows, Linux och macOS — inklusive CI-körare, Docker-behållare och serverlösa miljöer. För företagsproduktfamiljen, se Aspose.HTML — Enterprise Product Family.

HTML Parsing och DOM-manipulering

  • Analysera hela sidor med HTMLDocument.parse() eller fragment med HTMLDocument.parse_fragment()
  • Bygg dokument programatiskt med Document.create_element() och append_child()
  • Hitta noder med Document.get_element_by_id() och läs markup-attribut via Element.get_attribute()
  • Sätt attribut med Element.set_attribute() och tilldela text genom Node.text_content
  • Serialisera vilket underträd som helst tillbaka till markup med serialise()-funktionen

Vem använder DOM-bearbetning

  • Backend-tjänster som rengör eller skriver om användarskickade HTML innan lagring
  • Innehållspipelines som extraherar eller omstrukturerar sidfragment i stor skala
  • Testsviter som verifierar den genererade markupstrukturen i CI

CSS Stilmallar och beräknade stilar

  • Analysera stylesheet-text med CSSStyleSheet.replace_sync() och bifoga den via Document.attach_style_sheet()
  • Ställ in inline-deklarationer via elementets style-egenskap med CSSStyleDeclaration.set_property()
  • Lös upp kaskaden — specificitet, inline-vs-author-regler och ärftlighet — med Element.get_computed_style()
  • Läs tillbaka de lösta värdena med CSSStyleDeclaration.get_property_value()

Vem använder stilberäkning

  • E-post- och nyhetsbrevverktyg som verifierar effektiva stilar innan de skickas
  • HTML saneringsverktyg som behöver veta vilken stil ett element faktiskt renderas med
  • Utvecklare som felsöker kaskad- och specifikationsbeteende utanför en webbläsare

Tokenizer och trädkonstruktion

  • Kör HTML-tokenizern direkt med Tokenizer.tokenize() eller Tokenizer.tokenize_fragment()
  • Kör standardsbaserad trädkonstruktion med TreeBuilder.run()
  • Parsea markup direkt till ett träd med funktionen parse_html()

Vem använder lågnivåparsing

  • Linters och analysverktyg som inspekterar tokenströmmar snarare än färdiga träd
  • Verktyg som behöver anpassad felhantering under malformed-markup recovery
  • Pedagogiska projekt som studerar hur standardbaserad HTML parsing fungerar

URL:er och teckenkodningar

  • Analysera och validera URL:er med URL.parse() och URL.can_parse()
  • Läs och redigera frågesträngar med URLSearchParams — append(), get(), has(), delete()
  • Upptäck byte-strömskodningar (BOM och innehållssökning) med detect_encoding()
  • Normalisera kodningsetiketter till kanoniska namn med get_canonical_name()

Vem använder URL- och kodningsverktyg

  • Crawlers och fetchers som måste lösa och deduplicera URL:er på ett pålitligt sätt
  • Inmatningspipelines som hanterar äldre dokument med blandade kodningar
  • Tjänster som analyserar eller omskriver frågeparametrar på serversidan

Bygg ett DOM och lös upp CSS-kaskaden

Skapa ett dokument, bifoga ett stilark och läs den beräknade stilen — ID-väljaren har företräde framför klassregeln:

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-stilar får prioritet

Inline-deklarationer har högre specificitet än regler i författarens stilmall:

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"))

Detektera teckenkodning från byte

Avkänn kodningen för en rå byte-ström, inklusive BOM, och få tillbaka avkodad text:

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)

Vanliga Frågor

Vilken licens använder Aspose.HTML FOSS for Python?

MIT License — kommersiell användning, modifiering och omdistribution är alla tillåtna; det enda kravet är att behålla upphovsrättsmeddelandet med väsentliga kopior.

Vilka Python-versioner stöds, och hur installerar jag?

Python 3.10 eller senare. Installera med git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git — implementationen är ren Python utan inhemska beroenden.

Hur parsar jag HTML till ett dokument?

Använd HTMLDocument.parse() för kompletta sidor eller HTMLDocument.parse_fragment() för partiell markup; Document är fabriken för att bygga träd programatiskt.

Hantera CSS-kaskaden specificitet och !important korrekt?

Ja — beräknade värden följer selektor-specificitet, inline-deklarationer har högre prioritet än författarregler, !important-författarregler har högre prioritet än icke-viktiga inline-deklarationer, och arv flödar från förälder till barn.

Renderar biblioteket sidor eller konverterar det till andra format?

Nej. Den aktuella versionen fokuserar på parsning, DOM-manipulation, CSS stilberäkning, layoutstrukturer, URL:er och kodningar — ingen formatkonvertering eller bild/PDF-rendering.

Körs JavaScript automatiskt under parsning?

Nej. Parsing kör aldrig skript; utvärdering är explicit och opt-in genom JSContext med modulindläsning kontrollerad av ModuleRegistry och ModuleLoadPolicy.

  

Stöd och Lärande Resurser

 Svenska