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

Aspose.HTML FOSS pentru Python

Parsează HTML într-un DOM bazat pe standarde, aplică CSS și calculează stilurile din Python — gratuit, cu sursă deschisă și pur Python.

Bibliotecă Open-Source Python pentru procesarea HTML

Aspose.HTML FOSS for Python este o bibliotecă gratuită, open-source pentru lucrul cu documente HTML în aplicații Python. Instalați-o cu o singură comandă git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git și începeți să analizați markup-ul într-un model de obiect document, să construiți și să modificați arbori de elemente, să atașați foi de stil CSS, să rezolvați stilurile calculate și să lucrați cu URL-uri și codări de caractere — totul în Python pur, fără dependență de browser.

Biblioteca expune un API orientat pe standarde, construit în jurul lui HTMLDocument, Document, Element și CSSStyleSheet. Analizați markup-ul cu HTMLDocument.parse(), creați și conectați noduri cu Document.create_element() și append_child(), căutați elemente cu get_element_by_id(), stilizați-le prin CSSStyleSheet.replace_sync() și declarația style la nivel de element și citiți rezultatul înapoi cu Element.get_computed_style(). Blocurile de construcție de nivel inferior — HTML Tokenizer, TreeBuilder, URL și URLSearchParams în stil WHATWG și detectorul de flux de octeți detect_encoding() — sunt disponibile când aveți nevoie de control direct.

Aspose.HTML FOSS este licențiată sub MIT și implementată în Python pur, necesitând Python 3.10 sau o versiune ulterioară. Rulează identic pe Windows, Linux și macOS — inclusiv pe executori CI, containere Docker și medii serverless. Pentru familia de produse enterprise, vedeți Aspose.HTML — Enterprise Product Family.

HTML Parsare și Manipulare DOM

  • Analizați pagini complete cu HTMLDocument.parse() sau fragmente cu HTMLDocument.parse_fragment()
  • Construiți documente programatic cu Document.create_element() și append_child()
  • Căutați noduri cu Document.get_element_by_id() și citiți atributele markup prin Element.get_attribute()
  • Setați atributele cu Element.set_attribute() și atribuiți text prin Node.text_content
  • Serializați orice subarbore înapoi în markup cu funcția serialise()

Cine folosește procesarea DOM

  • Servicii de backend care curăță sau rescriu HTML trimis de utilizatori înainte de stocare
  • Conducte de conținut care extrag sau restructurează fragmente de pagină la scară largă
  • Suite-uri de teste care verifică structura markup-ului generat în CI

CSS Foi de stil și Stiluri calculate

  • Parsează textul foii de stil cu CSSStyleSheet.replace_sync() și atașează-l prin Document.attach_style_sheet()
  • Setează declarațiile inline prin proprietatea style a elementului cu CSSStyleDeclaration.set_property()
  • Rezolvă cascada — specificitatea, regulile inline-vs-autor și moștenirea — cu Element.get_computed_style()
  • Citește valorile rezolvate înapoi cu CSSStyleDeclaration.get_property_value()

Cine folosește calculul stilului

  • Instrumente de email și newsletter care verifică stilurile efective înainte de trimitere
  • HTML sanitizatoare care trebuie să cunoască stilul cu care un element este redat efectiv
  • Dezvoltatori care depanează comportamentul cascadei și al specificității în afara unui browser

Tokenizer și construcția arborelui

  • Utilizați tokenizer-ul HTML direct cu Tokenizer.tokenize() sau Tokenizer.tokenize_fragment()
  • Rulați construcția de arbore conform standardelor cu TreeBuilder.run()
  • Parseați markup-ul direct într-un arbore cu funcția parse_html()

Cine folosește parsarea de nivel scăzut

  • Linters și analizatori care inspectează fluxuri de tokeni în loc de arbori finalizaţi
  • Instrumente care necesită gestionare personalizată a erorilor în timpul recuperării din markup malformat
  • Proiecte educaționale care studiază cum funcționează parsarea HTML bazată pe standarde

URL-uri și codificări de caractere

  • Analizați și validați URL-urile cu URL.parse() și URL.can_parse()
  • Citiți și editați șirurile de interogare cu URLSearchParams — append(), get(), has(), delete()
  • Detectați codările fluxului de octeți (BOM și detectarea conținutului) cu detect_encoding()
  • Normalizați etichetele de codare la nume canonice cu get_canonical_name()

Cine folosește instrumente URL și de codare

  • Crawlers și fetchers care trebuie să rezolve și să elimine duplicatele URL-urilor în mod fiabil
  • Pipelines de ingestie care procesează documente legacy cu encodări mixte
  • Servicii care analizează sau rescriu parametrii de interogare pe server

Construiește un DOM și rezolvă cascada CSS

Creează un document, atașează o foaie de stil și citește stilul calculat — selectorul ID are prioritate față de 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"))

Stilurile inline au prioritate

Declarațiile inline au o specificitate mai mare decât regulile foii de stil a autorului:

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

Detectarea codării caracterelor din octeţi

Detectează codarea unui flux brut de octeţi, inclusiv BOM, şi obţine textul decodat înapoi:

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)

Întrebări Frecvente

Ce licență folosește Aspose.HTML FOSS for Python?

Licența MIT — utilizarea comercială, modificarea și redistribuirea sunt permise; singura cerință este păstrarea notificării de drepturi de autor în copii substanțiale.

Ce versiuni Python sunt suportate și cum le instalez?

Python 3.10 sau o versiune ulterioară. Instalați cu git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git — implementarea este pur Python fără dependențe native.

Cum parsez HTML într-un document?

Folosiți HTMLDocument.parse() pentru pagini complete sau HTMLDocument.parse_fragment() pentru markup parțial; Document este fabrica pentru construirea arborilor în mod programatic.

Cascada CSS gestionează corect specificitatea și !important?

Da — valorile calculate urmează specificitatea selectorului, declarațiile inline au prioritate față de regulile autorului, regulile autorului !important au prioritate față de declarațiile inline neimportante, și moștenirea curge de la părinte la copil.

Biblioteca redă pagini sau convertește în alte formate?

Nu. Versiunea curentă se concentrează pe parsare, manipularea DOM, calculul stilului CSS, structurile de layout, URL-uri și codări — fără conversie de format sau redare imagine/PDF.

Este JavaScript executat automat în timpul parsării?

Nu. Analiza nu rulează niciodată scripturi; evaluarea este explicită și opțională prin JSContext cu încărcarea modulelor controlată de ModuleRegistry și ModuleLoadPolicy.

  

Resurse de Suport și Învățare

 Română