Introducere
Aspose.HTML FOSS pentru Python este o bibliotecă nouă, open-source, pentru lucrul cu documente HTML în Python. Parsează markup-ul într-un model de obiect de document bazat pe standarde, permite construirea și modificarea programatică a arborilor de elemente și rezolvă CSS — inclusiv specificitatea, declarațiile inline și moștenirea — în stiluri calculate pe care le poți citi înapoi de la orice element.
Biblioteca vizează scenarii de backend și instrumentare în care un browser nu este disponibil sau nu este dorit: servicii care curăță HTML stocat, conducte care restructurează fragmente de pagină și suite de teste care verifică markup-ul generat. Se instalează din PyPI ca aspose-html-foss, are licență MIT și este implementată în Python pur pentru Python 3.10 și versiuni ulterioare, astfel încât se comportă la fel pe mașinile dezvoltatorilor, pe rulere CI și pe servere.
Dincolo de nucleul DOM și CSS, pachetul furnizează blocuri de construcție practice de care procesarea HTML are de obicei nevoie oricum: un tokenizer HTML și un constructor de arbori pe care le poți controla direct, clase în stil WHATWG URL și URLSearchParams, și un detector de codificare pe flux de octeți.
Ce este inclus
Construiește și modifică DOM-ul
Stratul DOM este construit în jurul Document, Element și Node. Crează elemente cu Document.create_element(), le conectezi împreună cu append_child(), setezi atributele markup cu Element.set_attribute() și cauți nodurile din nou cu Document.get_element_by_id(). Pagini complete și fragmente se parsează prin HTMLDocument.parse() și HTMLDocument.parse_fragment().
from aspose_html.dom import Document
doc = Document()
el = doc.create_element("div")
el.set_attribute("class", "foo")
el.set_attribute("id", "bar")
doc.append_child(el)
Aplică foi de stil și citește stilurile calculate
CSSStyleSheet.replace_sync() analizează textul foii de stil, Document.attach_style_sheet() îl pune în funcțiune și Element.get_computed_style() rezolvă cascada. Rezultatul respectă specificitatea selectorului — aici regula ID învinge regula de clasă:
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"))
Declarații inline și cascada
Fiecare element expune un CSSStyleDeclaration live prin proprietatea sa style. Declarațiile inline setate cu set_property() au o specificitate mai mare decât regulile foii de stil ale autorului, iar get_computed_style() reflectă acest lucru:
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"))
Tokenizator și Constructor de arbore
Când ai nevoie de mai mult control decât un arbore finalizat, straturile inferioare sunt API publice. Tokenizer.tokenize() și Tokenizer.tokenize_fragment() emit fluxul de tokenuri pentru o bucată de markup, TreeBuilder.run() realizează construcția arborelui conform standardelor, iar funcția parse_html() trece de la markup la arbore într-un singur apel. Acestea sunt aceleași componente pe care le folosește calea de parsare de nivel înalt.
URL-uri și codificări de caractere
URL.parse() și URL.can_parse() gestionează parsarea și validarea URL-urilor în stil WHATWG, cu URLSearchParams (append(), get(), has(), delete()) pentru șirurile de interogare. Pentru octeți brut, detect_encoding() detectează codificarea — inclusiv marcajele de ordine a octeților — și returnează textul decodat alături de un nivel de încredere, în timp ce get_canonical_name() normalizează etichetele de codificare:
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)
Start rapid
Instalați din PyPI:
asposefoss/html is not yet published — build from source until it ships. See the project README for build instructions.Apoi construiți un document, stilizați-l și citiți rezultatul calculat:
from aspose_html.dom import Document
from aspose_html.cssom import CSSStyleSheet
doc = Document()
el = doc.create_element("div")
el.set_attribute("id", "bar")
doc.append_child(el)
sheet = CSSStyleSheet()
sheet.replace_sync("#bar { color: blue }")
doc.attach_style_sheet(sheet)
style = el.get_computed_style()
print(style.get_property_value("color"))
Open Source & Licențiere
Aspose.HTML FOSS pentru Python este lansat sub licența MIT, astfel încât utilizarea comercială, modificarea și redistribuirea sunt permise. Codul sursă este disponibil pe GitHub și pachetul este publicat pe PyPI ca aspose-html-foss.
Începeți
- Începeți
- Ghid pentru dezvoltatori
- Articole KB
- Întrebări frecvente
- API Reference
- Prezentare generală a produsului