Giriş
Aspose.HTML FOSS for Python, Python içinde HTML belgeleriyle çalışmak için yeni bir açık kaynak kütüphanedir. İşaretlemeyi standartlara dayalı bir belge nesne modeline ayrıştırır, öğe ağaçlarını programlı olarak oluşturmanızı ve değiştirmenizi sağlar ve CSS — özgüllük, satır içi bildirimler ve kalıtım dahil — hesaplanmış stillere dönüştürür; bu stilleri herhangi bir öğeden geri okuyabilirsiniz.
Kütüphane, bir tarayıcının mevcut olmadığı veya istenmediği arka uç ve araç senaryolarını hedefler: depolanmış HTML temizleyen hizmetler, sayfa parçacıklarını yeniden yapılandıran işlem hatları ve üretilen işaretlemeyi doğrulayan test takımları. PyPI üzerinden aspose-html-foss olarak kurulur, MIT lisanslıdır ve saf Python ile Python 3.10 ve üzeri için uygulanmıştır, böylece geliştirici makinelerinde, CI çalışanlarında ve sunucularda aynı şekilde davranır.
DOM ve CSS çekirdeğinin ötesinde, paket genellikle HTML işleme sırasında ihtiyaç duyulan pratik yapı taşlarını da içerir: doğrudan kontrol edebileceğiniz bir HTML ayrıştırıcısı ve ağaç oluşturucu, WHATWG tarzı URL ve URLSearchParams sınıfları ve bir bayt akışı kodlama algılayıcısı.
Neler Dahil
DOM’u Oluştur ve Değiştir
DOM katmanı Document, Element ve Node etrafında inşa edilmiştir. Document.create_element() ile öğeler oluşturun, append_child() ile bunları birbirine bağlayın, Element.set_attribute() ile işaretleme özniteliklerini ayarlayın ve Document.get_element_by_id() ile düğümleri tekrar bulun. Tam sayfalar ve parçacıklar HTMLDocument.parse() ve HTMLDocument.parse_fragment() aracılığıyla ayrıştırılır.
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)
Stilleri Uygula ve Hesaplanmış Stilleri Oku
CSSStyleSheet.replace_sync() stil sayfası metnini ayrıştırır, Document.attach_style_sheet() bunu devreye alır ve Element.get_computed_style() kaskadı çözer. Sonuç, seçici özgüllüğüne saygı gösterir — burada ID kuralı sınıf kuralını yener:
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"))
Satır İçi Bildirimler ve Kaskad
Her öğe, style özelliği aracılığıyla canlı bir CSSStyleDeclaration ortaya çıkarır. set_property() ile ayarlanan satır içi bildirimler, yazar stil sayfası kurallarından daha yüksek özgüllüğe sahiptir ve get_computed_style() bunu yansıtır:
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"))
Tokenleştirici ve Ağaç Oluşturucu
Tamamlanmış bir ağaçtan daha fazla kontrol gerektiğinde, alt katmanlar genel API dir. Tokenizer.tokenize() ve Tokenizer.tokenize_fragment() bir işaretleme parçası için token akışını yayar, TreeBuilder.run() standart tabanlı ağaç oluşturmayı gerçekleştirir ve parse_html() işlevi işaretlemeden ağaca tek bir çağrıyla geçiş yapar. Bunlar yüksek seviyeli ayrıştırma yolunun kullandığı aynı bileşenlerdir.
URL’ler ve Karakter Kodlamaları
URL.parse() ve URL.can_parse(), WHATWG tarzı URL ayrıştırma ve doğrulamayı yönetir, sorgu dizesi için URLSearchParams (append(), get(), has(), delete()) ile. Ham baytlar için, detect_encoding() kodlamayı algılar — bayt sırası işaretleri dahil — ve çözülen metni bir güven düzeyi ile birlikte döndürür, get_canonical_name() ise kodlama etiketlerini normalleştirir:
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)
Hızlı Başlangıç
Kurulum PyPI adresinden:
asposefoss/html is not yet published — build from source until it ships. See the project README for build instructions.Ardından bir belge oluşturun, stil verin ve hesaplanan sonucu okuyun:
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"))
Açık Kaynak & Lisanslama
Aspose.HTML FOSS, Python için MIT lisansı altında yayınlanmıştır, bu yüzden ticari kullanım, değişiklik ve yeniden dağıtım tümüyle izinlidir. Kaynak kodu GitHub adresinde mevcuttur ve paket PyPI üzerinde aspose-html-foss olarak yayınlanmıştır.