परिचय

Aspose.HTML FOSS Python के लिए एक नई ओपन-सोर्स लाइब्रेरी है जो Python में HTML दस्तावेजों के साथ काम करने के लिए है। यह मार्कअप को एक मानक-आधारित दस्तावेज़ ऑब्जेक्ट मॉडल में पार्स करता है, आपको प्रोग्रामेटिक रूप से एलिमेंट ट्री बनाने और संशोधित करने देता है, और CSS को — विशिष्टता, इनलाइन घोषणाओं और विरासत सहित — गणना किए गए स्टाइल्स में हल करता है जिन्हें आप किसी भी एलिमेंट से वापस पढ़ सकते हैं।

यह लाइब्रेरी उन बैकएंड और टूलिंग परिस्थितियों को लक्षित करती है जहाँ ब्राउज़र उपलब्ध नहीं है या अनचाहा है: ऐसी सेवाएँ जो संग्रहीत HTML को साफ़ करती हैं, पाइपलाइन जो पेज फ्रैगमेंट्स को पुनः संरचित करती हैं, और टेस्ट सूट जो जनरेट किए गए मार्कअप की पुष्टि करते हैं। यह PyPI से aspose-html-foss के रूप में स्थापित होती है, MIT लाइसेंस वाली है, और शुद्ध Python में Python 3.10 और बाद के संस्करणों के लिए लागू की गई है, इसलिए यह डेवलपर मशीनों, CI रनर्स और सर्वरों पर समान व्यवहार करती है।

DOM और CSS कोर के अलावा, पैकेज व्यावहारिक बिल्डिंग ब्लॉक्स प्रदान करता है जिनकी HTML प्रोसेसिंग आमतौर पर अंततः आवश्यकता होती है: एक HTML टोकनाइज़र और ट्री बिल्डर जिसे आप सीधे चला सकते हैं, WHATWG-स्टाइल URL और URLSearchParams क्लासेज़, तथा एक बाइट-स्ट्रीम एन्कोडिंग डिटेक्टर।


क्या शामिल है

DOM बनाएं और संशोधित करें

DOM लेयर Document, Element और Node के आसपास निर्मित है। Document.create_element() से तत्व बनाएं, उन्हें append_child() से जोड़ें, Element.set_attribute() से मार्कअप एट्रिब्यूट सेट करें, और Document.get_element_by_id() से नोड्स को फिर से देखें। पूर्ण पृष्ठों और फ्रैगमेंट्स को HTMLDocument.parse() और HTMLDocument.parse_fragment() के माध्यम से पार्स किया जाता है।

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)

स्टाइलशीट लागू करें और गणना किए गए स्टाइल पढ़ें

CSSStyleSheet.replace_sync() स्टाइलशीट टेक्स्ट को पार्स करता है, Document.attach_style_sheet() इसे लागू करता है, और Element.get_computed_style() कैस्केड को हल करता है। परिणाम सेलेक्टर विशिष्टता का सम्मान करता है — यहाँ 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"))

इनलाइन घोषणाएँ और कैस्केड

प्रत्येक तत्व अपने style प्रॉपर्टी के माध्यम से एक लाइव CSSStyleDeclaration उजागर करता है। set_property() से सेट की गई इनलाइन घोषणाएँ लेखक की स्टाइलशीट नियमों की तुलना में अधिक विशिष्टता रखती हैं, और get_computed_style() इसे दर्शाता है:

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

टोकनाइज़र और ट्री बिल्डर

जब आपको पूर्ण ट्री से अधिक नियंत्रण चाहिए, तो निचले स्तर सार्वजनिक API होते हैं। Tokenizer.tokenize() और Tokenizer.tokenize_fragment() मार्कअप के एक भाग के लिए टोकन स्ट्रीम उत्पन्न करते हैं, TreeBuilder.run() मानक-आधारित ट्री निर्माण करता है, और parse_html() फ़ंक्शन एक कॉल में मार्कअप से ट्री तक जाता है। ये वही घटक हैं जिन्हें उच्च-स्तरीय पार्स पाथ उपयोग करता है।

URL और कैरेक्टर एन्कोडिंग

URL.parse() और URL.can_parse() WHATWG-शैली के URL पार्सिंग और वैलिडेशन को संभालते हैं, क्वेरी स्ट्रिंग्स के लिए URLSearchParams (append(), get(), has(), delete()) के साथ। कच्चे बाइट्स के लिए, detect_encoding() एन्कोडिंग को पहचानता है — बाइट-ऑर्डर मार्क सहित — और डिकोडेड टेक्स्ट को एक विश्वसनीयता स्तर के साथ लौटाता है, जबकि get_canonical_name() एन्कोडिंग लेबल को सामान्यीकृत करता है:

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)

त्वरित प्रारंभ

PyPI से इंस्टॉल करें:

asposefoss/html is not yet published — build from source until it ships. See the project README for build instructions.

फिर एक दस्तावेज़ बनाएं, उसे स्टाइल करें, और गणना किया हुआ परिणाम पढ़ें:

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

ओपन सोर्स & लाइसेंसिंग

Aspose.HTML FOSS for Python को MIT लाइसेंस के तहत जारी किया गया है, इसलिए वाणिज्यिक उपयोग, संशोधन, और पुनर्वितरण सभी की अनुमति है। स्रोत कोड GitHub पर उपलब्ध है और पैकेज PyPI पर aspose-html-foss के रूप में प्रकाशित किया गया है।


शुरूआत

संबंधित संसाधन