1. उत्पादों
  2.   Aspose.HTML
  3.   Aspose.HTML FOSS for Python

Python के लिए Aspose.HTML FOSS

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-शैली के 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() के साथ stylesheet टेक्स्ट को पार्स करें और इसे Document.attach_style_sheet() के माध्यम से संलग्न करें
  • तत्व की style प्रॉपर्टी के माध्यम से इनलाइन डिक्लेरेशन्स सेट करें CSSStyleDeclaration.set_property() का उपयोग करके
  • Element.get_computed_style() के साथ कास्केड को हल करें — विशिष्टता, इनलाइन-vs-ऑथर नियम, और इनहेरिटेंस —
  • CSSStyleDeclaration.get_property_value() के साथ हल किए गए मानों को पुनः पढ़ें

स्टाइल कंप्यूटेशन का उपयोग कौन करता है

  • ईमेल और न्यूज़लेटर टूलिंग जो भेजने से पहले प्रभावी शैलियों को सत्यापित करती है
  • HTML सैनिटाइज़र जो यह जानने की आवश्यकता रखते हैं कि कोई तत्व वास्तव में किस शैली के साथ रेंडर होता है
  • डेवलपर्स जो ब्राउज़र के बाहर कास्केड और विशिष्टता व्यवहार को डिबग कर रहे हैं

टोकनाइज़र और ट्री निर्माण

  • HTML टोकनाइज़र को सीधे Tokenizer.tokenize() या Tokenizer.tokenize_fragment() के साथ चलाएँ
  • TreeBuilder.run() के साथ मानकों-आधारित ट्री निर्माण चलाएँ
  • parse_html() फ़ंक्शन के साथ मार्कअप को सीधे एक ट्री में पार्स करें

Low-Level Parsing का उपयोग कौन करता है

  • टोकन स्ट्रीम की जाँच करने वाले लिंटर और विश्लेषक, न कि पूर्ण पेड़ों की
  • खराब-मार्कअप पुनर्प्राप्ति के दौरान कस्टम त्रुटि संभाल की आवश्यकता वाले उपकरण
  • शैक्षिक प्रोजेक्ट जो यह अध्ययन करते हैं कि मानक-आधारित HTML पार्सिंग कैसे काम करती है

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

  • URL.parse() और URL.can_parse() के साथ URLs को पार्स और वैधता जांचें
  • URLSearchParams के साथ क्वेरी स्ट्रिंग पढ़ें और संपादित करें — append(), get(), has(), delete()
  • detect_encoding() के साथ बाइट-स्ट्रीम एन्कोडिंग (BOM और कंटेंट स्निफ़िंग) का पता लगाएँ
  • get_canonical_name() के साथ एन्कोडिंग लेबल को कैनॉनिकल नामों में सामान्यीकृत करें

URL और एन्कोडिंग टूल्स का उपयोग कौन करता है

  • उन क्रॉलर्स और फ़ेचर्स को जो URLs को विश्वसनीय रूप से हल और डुप्लीकेट हटाने में सक्षम हों
  • मिश्रित एन्कोडिंग वाले लेगेसी दस्तावेज़ों को संभालने वाले इन्गेस्टशन पाइपलाइन
  • सेवाएँ जो सर्वर-साइड पर क्वेरी पैरामीटर को पार्स या पुनर्लेखन करती हैं

एक DOM बनाएं और CSS कैस्केड को हल करें

एक दस्तावेज़ बनाएं, एक स्टाइलशीट संलग्न करें, और गणना किया गया शैली पढ़ें — ID selector क्लास rule पर जीतता है:

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 कौन सा लाइसेंस उपयोग करता है?

The MIT License — व्यावसायिक उपयोग, संशोधन, और पुनर्वितरण सभी की अनुमति है; एकमात्र आवश्यकता यह है कि महत्वपूर्ण प्रतियों में कॉपीराइट नोटिस रखा जाए।

कौन-से 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 को सही ढंग से संभालता है?

हां — गणना किए गए मान चयनकर्ता विशिष्टता का पालन करते हैं, इनलाइन घोषणाएँ लेखक नियमों से ऊपर होती हैं, !important लेखक नियम गैर-महत्वपूर्ण इनलाइन घोषणाओं से ऊपर होते हैं, और विरासत माता से बाल तक प्रवाहित होती है।

क्या लाइब्रेरी पृष्ठों को रेंडर करती है या अन्य स्वरूपों में परिवर्तित करती है?

नहीं। वर्तमान रिलीज़ पार्सिंग, DOM मैनिपुलेशन, CSS स्टाइल कम्प्यूटेशन, लेआउट संरचनाओं, URLs, और एन्कोडिंग्स पर केंद्रित है — कोई फॉर्मेट कन्वर्ज़न या इमेज/PDF रेंडरिंग नहीं।

क्या जावास्क्रिप्ट पार्सिंग के दौरान स्वचालित रूप से निष्पादित होती है?

नहीं। पार्सिंग कभी स्क्रिप्ट नहीं चलाती; मूल्यांकन स्पष्ट है और JSContext के माध्यम से ऑप्ट-इन किया जाता है, जहाँ मॉड्यूल लोडिंग ModuleRegistry और ModuleLoadPolicy द्वारा नियंत्रित होती है।

  

समर्थन और सीखने के संसाधन

 हिन्दी