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

Aspose.HTML FOSS dla Python

Przeanalizuj HTML do opartego na standardach DOM, zastosuj CSS i oblicz style z Python — darmowy, otwarto-źródłowy i czysty Python.

Biblioteka Open-Source Python do przetwarzania HTML

Aspose.HTML FOSS for Python jest darmową, otwarto-źródłową biblioteką do pracy z dokumentami HTML w aplikacjach Python. Zainstaluj ją za pomocą jednego polecenia git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git i rozpocznij parsowanie znacznika do modelu obiektowego dokumentu, budowanie i modyfikowanie drzew elementów, dołączanie arkuszy stylów CSS, rozwiązywanie stylów obliczonych oraz pracę z URL-ami i kodowaniami znaków — wszystko w czystym Python bez zależności od przeglądarki.

Biblioteka udostępnia standardowo zorientowany API oparty na HTMLDocument, Document, Element oraz CSSStyleSheet. Parsuj znacznik za pomocą HTMLDocument.parse(), twórz i łącz węzły przy użyciu Document.create_element() i append_child(), wyszukuj elementy metodą get_element_by_id(), stylizuj je za pomocą CSSStyleSheet.replace_sync() oraz deklaracji style na poziomie elementu, a wynik odczytuj przy pomocy Element.get_computed_style(). Niższe poziomy budulców — HTML Tokenizer, TreeBuilder, stylowe WHATWG URL i URLSearchParams oraz detektor strumieni bajtowych detect_encoding() — są dostępne, gdy potrzebna jest bezpośrednia kontrola.

Aspose.HTML FOSS jest licencjonowany na warunkach MIT i zaimplementowany w czystym Python, wymagając Python 3.10 lub nowszego. Działa identycznie na Windows, Linux i macOS — w tym w środowiskach CI, kontenerach Docker oraz w środowiskach serverless. Dla rodziny produktów enterprise zobacz Aspose.HTML — Enterprise Product Family.

HTML Parsowanie i manipulacja DOM

  • Analizuj całe strony za pomocą HTMLDocument.parse() lub fragmenty za pomocą HTMLDocument.parse_fragment()
  • Twórz dokumenty programowo przy użyciu Document.create_element() i append_child()
  • Wyszukuj węzły za pomocą Document.get_element_by_id() i odczytuj atrybuty markup poprzez Element.get_attribute()
  • Ustawiaj atrybuty przy pomocy Element.set_attribute() i przypisuj tekst przez Node.text_content
  • Serializuj dowolne poddrzewo z powrotem do markup przy użyciu funkcji serialise()

Kto używa przetwarzania DOM

  • Usługi backendowe, które czyszczą lub przepisują przesłane przez użytkownika HTML przed ich zapisaniem
  • Potoki treści, które wyodrębniają lub przekształcają fragmenty stron w dużej skali
  • Zestawy testów, które sprawdzają strukturę wygenerowanego markupu w CI

CSS Arkusze stylów i style obliczone

  • Przeanalizuj tekst arkusza stylów za pomocą CSSStyleSheet.replace_sync() i dołącz go poprzez Document.attach_style_sheet()
  • Ustaw deklaracje inline poprzez właściwość elementu style przy użyciu CSSStyleDeclaration.set_property()
  • Rozwiąż kaskadę — specyficzność, reguły inline-vs-author oraz dziedziczenie — przy pomocy Element.get_computed_style()
  • Odczytaj rozwiązane wartości przy użyciu CSSStyleDeclaration.get_property_value()

Kto używa Style Computation

  • Narzędzia do e-maili i newsletterów, które weryfikują efektywne style przed wysłaniem
  • HTML sanitizatory, które muszą znać styl, w jakim element rzeczywiście jest renderowany
  • Programiści debugujący zachowanie kaskady i specyficzności poza przeglądarką

Tokenizator i konstrukcja drzewa

  • Steruj tokenizerem HTML bezpośrednio za pomocą Tokenizer.tokenize() lub Tokenizer.tokenize_fragment()
  • Przeprowadzaj konstrukcję drzewa zgodną ze standardami przy użyciu TreeBuilder.run()
  • Parsuj markup bezpośrednio do drzewa za pomocą funkcji parse_html()

Kto używa parsowania niskiego poziomu

  • Lintery i analizatory, które analizują strumienie tokenów zamiast gotowych drzew
  • Narzędzia, które potrzebują własnej obsługi błędów podczas odzyskiwania po niepoprawnym znaczniku
  • Projekty edukacyjne badające, jak działa parsowanie oparte na standardach HTML

Adresy URL i kodowanie znaków

  • Analizuj i waliduj adresy URL za pomocą URL.parse() i URL.can_parse()
  • Odczytuj i edytuj ciągi zapytań przy użyciu URLSearchParams — append(), get(), has(), delete()
  • Wykrywaj kodowania strumieni bajtowych (BOM i wykrywanie zawartości) za pomocą detect_encoding()
  • Normalizuj etykiety kodowań do nazw kanonicznych przy użyciu get_canonical_name()

Kto korzysta z narzędzi URL i kodowania

  • Roboty i pobieracze, które muszą niezawodnie rozwiązywać i usuwać duplikaty adresów URL
  • Potoki ingestujące obsługujące starsze dokumenty o mieszanych kodowaniach
  • Usługi, które analizują lub przepisywują parametry zapytań po stronie serwera

Zbuduj DOM i Rozwiąż kaskadę CSS

Utwórz dokument, podłącz arkusz stylów i odczytaj obliczony styl — selektor ID ma pierwszeństwo przed regułą klasy:

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

Style inline mają priorytet

Deklaracje inline mają wyższą specyficzność niż reguły arkusza stylów 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"))

Wykrywanie kodowania znaków z bajtów

Wykryj kodowanie surowego strumienia bajtów, w tym BOM, i uzyskaj zdekodowany tekst:

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)

Najczęściej Zadawane Pytania

Jaką licencję używa Aspose.HTML FOSS for Python?

Licencja MIT — komercyjne użycie, modyfikacja i redystrybucja są dozwolone; jedynym wymogiem jest zachowanie informacji o prawach autorskich przy znacznych kopiach.

Jakie wersje Python są obsługiwane i jak je zainstalować?

Python 3.10 lub później. Zainstaluj przy użyciu git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git — implementacja jest czystym Python bez natywnych zależności.

Jak sparsować HTML do dokumentu?

Użyj HTMLDocument.parse() dla pełnych stron lub HTMLDocument.parse_fragment() dla częściowego markupu; Document jest fabryką do budowania drzew programowo.

Czy kaskada CSS prawidłowo obsługuje specyficzność i !important?

Tak — wyliczone wartości podążają za specyficznością selektora, deklaracje inline mają wyższy priorytet niż reguły autora, reguły autora !important mają wyższy priorytet niż nie-ważne deklaracje inline oraz dziedziczenie płynie od rodzica do dziecka.

Czy biblioteka renderuje strony, czy konwertuje je na inne formaty?

Nie. Aktualne wydanie koncentruje się na parsowaniu, manipulacji DOM, CSS obliczaniu stylów, strukturach układu, URL-ach i kodowaniach — brak konwersji formatów ani renderowania obrazów/PDF.

Czy JavaScript jest wykonywany automatycznie podczas parsowania?

Nie. Parsowanie nigdy nie uruchamia skryptów; ewaluacja jest jawna i wymaga zgody poprzez JSContext z ładowaniem modułów kontrolowanym przez ModuleRegistry i ModuleLoadPolicy.

  

Zasoby Wsparcia i Nauki

 Polski