Поширені питання

Поширені питання

Ліцензування та відкритий код

Яку ліцензію використовує Aspose.HTML FOSS для Python?

Бібліотека випущена під ліцензією MIT License. Повний текст постачається як LICENSE файл у репозиторій GitHub.

Чи можу я використовувати його у комерційних продуктах?

Так. Ліцензія MIT дозволяє комерційне використання, модифікацію, розповсюдження та субліцензування. Єдина вимога — зберігати повідомлення про авторські права та текст ліцензії у суттєвих копіях.

Встановлення та вимоги

Як встановити бібліотеку і які версії Python підтримуються?

Встановіть за допомогою git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git. Бібліотека вимагає Python 3.10 або новішу; поточний випуск — 0.1.0.

Чи є нативні залежності?

Ні. Реалізація — чистий Python — без браузерного рушія, без скомпільованих розширень — тому вона поводиться однаково на Windows, Linux та macOS, включно з CI-раннерами та контейнерами.

API Usage

Як розпарсити HTML у документ?

Використовуйте HTMLDocument.parse() для повних сторінок або HTMLDocument.parse_fragment() для часткової розмітки. Для програмної побудови Document — це фабрика вузлів:

from aspose_html.dom import Document
doc = Document()
el = doc.create_element("div")
el.set_attribute("id", "bar")
doc.append_child(el)

Як застосувати CSS і прочитати отриманий стиль?

Розпарсити текст таблиці стилів за допомогою CSSStyleSheet.replace_sync(), приєднати його за допомогою Document.attach_style_sheet() і прочитати вирішений результат за допомогою Element.get_computed_style():

from aspose_html.cssom import CSSStyleSheet
sheet = CSSStyleSheet()
sheet.replace_sync("#bar { color: blue }")
doc.attach_style_sheet(sheet)
print(el.get_computed_style().get_property_value("color"))

Чи правильно каскад обробляє специфічність і !important?

Так. Обчислені значення слідують специфічності селекторів (ID переважає клас, який переважає тип), inline-оголошення переважають правила автора, і !important правила автора переважають inline-оголошення без !important. Наслідування відбувається від батька до дитини для успадковуваних властивостей.

Чи можу я використовувати токенізатор і будівник дерева безпосередньо?

Так — Tokenizer.tokenize() генерує стандартний потік токенів, TreeBuilder.run() виконує побудову дерева, а parse_html() обгортає весь конвеєр в один виклик.

Як працювати з URL-адресами та кодуваннями символів?

URL.parse() і URL.can_parse() забезпечують обробку URL у стилі WHATWG з URLSearchParams для рядків запитів. Для необроблених байтів detect_encoding() повертає кодування, рівень впевненості та декодований текст.

Відомі обмеження

Чи є які-небудь API, які присутні, але не реалізовані?

Декілька членів оголошені, але наразі не функціональні, включаючи CSSRule.type, CSSRule.css_text та HTMLImageElement.decode. Файл limitations.md у моделі знань відстежує їх; уникайте їх використання.

Чи бібліотека візуалізує сторінки або конвертує їх у інші формати?

Ні. Поточний випуск орієнтований на парсинг, маніпуляції DOM, обчислення стилів CSS, структури макету, URL-и та кодування. Він не включає конвертацію форматів або рендеринг зображень/PDF.

Чи JavaScript виконується автоматично під час парсингу?

Ні. Парсинг ніколи не виконує скрипти. Оцінка скриптів є явною та включається через JSContext, при цьому завантаження модулів контролюється ModuleRegistry та ModuleLoadPolicy.

Дивіться також

 Українська