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

Aspose.HTML FOSS pro Python

Rozparsujte HTML do standardně založeného DOM, aplikujte CSS a vypočítejte styly z Python — zdarma, open-source a čistý Python.

Open-Source Python knihovna pro HTML zpracování

Aspose.HTML FOSS for Python je bezplatná, open-source knihovna pro práci s HTML dokumenty v aplikacích Python. Nainstalujte ji jedním příkazem git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git a začněte parsovat značkový jazyk do modelu objektu dokumentu, vytvářet a upravovat stromové struktury elementů, připojovat CSS styly, řešit vypočtené styly a pracovat s URL a znaková kódování — vše v čistém Python bez závislosti na prohlížeči.

Knihovna poskytuje standardům orientované rozhraní API postavené kolem HTMLDocument, Document, Element a CSSStyleSheet. Parsujte značkový jazyk pomocí HTMLDocument.parse(), vytvářejte a propojujte uzly pomocí Document.create_element() a append_child(), vyhledávejte elementy pomocí get_element_by_id(), stylujte je pomocí CSSStyleSheet.replace_sync() a deklarace style na úrovni elementu a výsledek načtěte pomocí Element.get_computed_style(). Nižší úrovně stavebních bloků — HTML Tokenizer, TreeBuilder, styl URL a URLSearchParams podle WHATWG a detektor proudových bajtů detect_encoding() — jsou k dispozici, když potřebujete přímou kontrolu.

Aspose.HTML FOSS je licencována pod licencí MIT a implementována v čistém Python, vyžaduje Python 3.10 nebo novější. Funguje identicky na Windows, Linuxu i macOS — včetně CI runnerů, Docker kontejnerů a serverless prostředí. Pro rodinu podnikových produktů viz Aspose.HTML — Enterprise Product Family.

HTML Parsování a manipulace s DOM

  • Parsujte kompletní stránky pomocí HTMLDocument.parse() nebo fragmenty pomocí HTMLDocument.parse_fragment()
  • Vytvářejte dokumenty programově pomocí Document.create_element() a append_child()
  • Vyhledávejte uzly pomocí Document.get_element_by_id() a čtěte atributy značek pomocí Element.get_attribute()
  • Nastavujte atributy pomocí Element.set_attribute() a přiřazujte text přes Node.text_content
  • Serializujte libovolný podstrom zpět do značkovacího jazyka pomocí funkce serialise()

Kdo používá zpracování DOM

  • Backendové služby, které čistí nebo přepisují uživatelsky zaslané HTML před uložením
  • Obsahové pipeline, které v masovém měřítku extrahují nebo restrukturalizují fragmenty stránek
  • Testovací sady, které ověřují strukturu vygenerovaného markupu v CI

CSS Šablony stylů a vypočtené styly

  • Analyzovat text stylového listu pomocí CSSStyleSheet.replace_sync() a připojit jej pomocí Document.attach_style_sheet()
  • Nastavit inline deklarace přes vlastnost style elementu pomocí CSSStyleDeclaration.set_property()
  • Vyřešit kaskádu — specificita, pravidla inline vs. autor a dědičnost — pomocí Element.get_computed_style()
  • Načíst vyřešené hodnoty zpět pomocí CSSStyleDeclaration.get_property_value()

Kdo používá Style Computation

  • Nástroj pro e-mail a newsletter, který ověřuje účinné styly před odesláním
  • HTML sanitizéry, které potřebují vědět, jaký styl prvek skutečně vykresluje
  • Vývojáři ladící chování kaskády a specifikace mimo prohlížeč

Tokenizer a konstrukce stromu

  • Ovládejte tokenizér HTML přímo pomocí Tokenizer.tokenize() nebo Tokenizer.tokenize_fragment()
  • Proveďte konstrukci stromu podle standardů pomocí TreeBuilder.run()
  • Analyzujte značkový jazyk přímo do stromu pomocí funkce parse_html()

Kdo používá nízkoúrovňové parsování

  • Lintery a analyzátory, které kontrolují tokenové proudy místo hotových stromů
  • Nástroje, které potřebují vlastní zpracování chyb během obnovy po chybně formátovaném značkování
  • Vzdělávací projekty studující, jak funguje standards-based HTML parsing

URL a kódování znaků

  • Analyzujte a ověřujte URL pomocí URL.parse() a URL.can_parse()
  • Čtěte a upravujte řetězce dotazů pomocí URLSearchParams — append(), get(), has(), delete()
  • Detekujte kódování bajtových toků (BOM a detekce obsahu) pomocí detect_encoding()
  • Normalizujte štítky kódování na kanonické názvy pomocí get_canonical_name()

Kdo používá nástroje URL a kódování

  • Prohledávače a stahovače, které musí spolehlivě rozpoznávat a odstraňovat duplicitní URL
  • Ingestní pipeline zpracovávající starší dokumenty s různorodými kódováními
  • Služby, které na serverové straně parsují nebo přepisují parametry dotazu

Vytvořte DOM a vyřešte kaskádu CSS

Vytvořte dokument, připojte stylový list a přečtěte vypočtený styl — selektor ID má přednost před pravidlem třídy:

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 styly mají přednost

Inline deklarace mají vyšší specifikaci než pravidla stylového listu autora:

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

Detekce kódování znaků z bajtů

Zjistěte kódování surového proudu bajtů, včetně BOM, a získejte zpět dekódovaný 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)

Často kladené dotazy

Jakou licenci používá Aspose.HTML FOSS for Python?

Licence MIT — komerční použití, úpravy a redistribuce jsou všechny povoleny; jedinou podmínkou je zachování oznámení o autorských právech u podstatných kopií.

Které verze Python jsou podporovány a jak je nainstaluji?

Python 3.10 nebo novější. Instalujte pomocí git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git — implementace je čistý Python bez nativních závislostí.

Jak mohu parsovat HTML do dokumentu?

Použijte HTMLDocument.parse() pro kompletní stránky nebo HTMLDocument.parse_fragment() pro částečný markup; Document je továrna pro programové vytváření stromů.

Zvládá kaskáda CSS správně specifitu a !important?

Ano — vypočtené hodnoty se řídí specifikací selektorů, inline deklarace mají přednost před pravidly autora, !important pravidla autora mají přednost před ne-důležitými inline deklaracemi a dědičnost proudí od rodiče k potomkovi.

Vykresluje knihovna stránky nebo převádí do jiných formátů?

Ne. Aktuální verze se zaměřuje na parsování, manipulaci s DOM, výpočet stylů CSS, struktury rozvržení, URL a kódování — žádná konverze formátů ani vykreslování obrázků/PDF.

Je JavaScript vykonáván automaticky během parsování?

Ne. Parsování nikdy nespouští skripty; vyhodnocování je explicitní a na základě souhlasu prostřednictvím JSContext s načítáním modulů řízeným ModuleRegistry a ModuleLoadPolicy.

  

Podpora a vzdělávací materiály

 Čeština