1. Продукти
  2.   Aspose.HTML
  3.   Aspose.HTML FOSS for Python

Aspose.HTML FOSS для Python

Розберіть HTML у DOM, що відповідає стандартам, застосуйте CSS і обчисліть стилі з Python — безкоштовний, з відкритим кодом і чистий Python.

Бібліотека з відкритим кодом Python для обробки HTML

Aspose.HTML FOSS for Python — це безкоштовна, з відкритим вихідним кодом бібліотека для роботи з HTML документами у Python застосунках. Встановіть її за допомогою однієї команди git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git і почніть парсити розмітку в модель об’єктного документа, будувати та змінювати дерева елементів, підключати CSS таблиці стилів, обчислювати обчислені стилі та працювати з URL-адресами і кодуваннями символів — все це у чистому Python без залежності від браузера.

Бібліотека надає орієнтований на стандарти API, побудований навколо HTMLDocument, Document, Element та CSSStyleSheet. Парсите розмітку за допомогою HTMLDocument.parse(), створюйте та з’єднуйте вузли за допомогою Document.create_element() та append_child(), знаходьте елементи за допомогою get_element_by_id(), стилізуйте їх через CSSStyleSheet.replace_sync() та декларацію style на рівні елементу, і читайте результат за допомогою Element.get_computed_style(). Нижчі будівельні блоки — HTML Tokenizer, TreeBuilder, WHATWG-style URL і URLSearchParams, а також детектор потокових байтів detect_encoding() — доступні, коли потрібен прямий контроль.

Aspose.HTML FOSS має ліцензію MIT і реалізована у чистому Python, вимагаючи Python 3.10 або новішої версії. Вона працює ідентично на Windows, Linux та macOS — включаючи CI-виконавці, Docker-контейнери та безсерверні середовища. Для сімейства корпоративних продуктів дивіться Aspose.HTML — Enterprise Product Family.

HTML Парсинг та маніпуляція DOM

  • Розбирати повні сторінки за допомогою HTMLDocument.parse() або фрагменти за допомогою HTMLDocument.parse_fragment()
  • Створювати документи програмно за допомогою Document.create_element() та append_child()
  • Шукати вузли за допомогою Document.get_element_by_id() і читати атрибути розмітки через Element.get_attribute()
  • Встановлювати атрибути за допомогою Element.set_attribute() і призначати текст через Node.text_content
  • Серіалізувати будь-яке піддерево назад у розмітку за допомогою функції serialise()

Хто використовує обробку DOM

  • Служби бекенду, які очищають або переписують користувачем надані HTML перед збереженням
  • Конвеєри вмісту, які витягують або перебудовують фрагменти сторінок у масштабі
  • Тестові набори, які перевіряють структуру згенерованої розмітки у CI

CSS Таблиці стилів та обчислені стилі

  • Розпарсити текст таблиці стилів за допомогою CSSStyleSheet.replace_sync() і приєднати його через Document.attach_style_sheet()
  • Встановити інлайн-оголошення через властивість елемента style за допомогою CSSStyleDeclaration.set_property()
  • Вирішити каскад — специфічність, правила inline-vs-author та успадкування — за допомогою Element.get_computed_style()
  • Прочитати отримані значення за допомогою CSSStyleDeclaration.get_property_value()

Хто використовує обчислення стилю

  • Інструменти для електронної пошти та розсилок, які перевіряють ефективні стилі перед відправкою
  • HTML санітайзери, які повинні знати стиль, у якому елемент фактично відображається
  • Розробники, які налагоджують каскад та специфічність поведінки поза браузером

Токенізатор і побудова дерева

  • Керуйте токенізатором HTML безпосередньо за допомогою Tokenizer.tokenize() або Tokenizer.tokenize_fragment()
  • Виконуйте побудову дерева згідно зі стандартами за допомогою TreeBuilder.run()
  • Розбирайте розмітку безпосередньо в дерево за допомогою функції parse_html()

Хто використовує низькорівневий парсинг

  • Лінтери та аналізатори, які перевіряють потоки токенів, а не завершені дерева
  • Інструменти, яким потрібна спеціальна обробка помилок під час відновлення після помилкової розмітки
  • Освітні проєкти, що вивчають, як працює парсинг, заснований на стандартах HTML

URL-адреси та кодування символів

  • Аналізуйте та перевіряйте URL-адреси за допомогою URL.parse() та URL.can_parse()
  • Читайте та редагуйте рядки запитів за допомогою URLSearchParams — append(), get(), has(), delete()
  • Виявляйте кодування байтових потоків (BOM та визначення вмісту) за допомогою detect_encoding()
  • Нормалізуйте мітки кодування до канонічних назв за допомогою get_canonical_name()

Хто використовує інструменти URL та кодування

  • Краулери та завантажувачі, які повинні надійно розв’язувати та усувати дублікати URL-адрес
  • Конвейери інжесту, що обробляють застарілі документи зі змішаними кодуваннями
  • Служби, які розбирають або переписують параметри запиту на боці сервера

Створіть DOM і вирішіть CSS каскад

Створіть документ, підключіть таблицю стилів і прочитайте обчислений стиль — селектор ID переважає правило класу:

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

Вбудовані стилі мають пріоритет

Вбудовані декларації мають вищу специфічність, ніж правила таблиці стилів автора:

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

Визначення кодування символів з байтів

Визначте кодування необробленого потоку байтів, включаючи BOM, і отримайте декодований текст назад:

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)

Часті Питання

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

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

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

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

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

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

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

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

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

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

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

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

  

Ресурси Підтримки та Навчання

 Українська