कैसे पार्स करें HTML को Python में
Aspose.HTML FOSS for Python मानक ट्री-निर्माण एल्गोरिथ्म के साथ मार्कअप को पार्स करता है: पूर्ण पृष्ठों के लिए HTMLDocument.parse(), स्निपेट्स के लिए HTMLDocument.parse_fragment(), और परिणाम में टाइप्ड एलिमेंट क्लासेज़ (HTMLElement और उसकी सबक्लासेज़)। यह गाइड पार्सिंग एंट्री पॉइंट्स को कवर करता है और पिप का उपयोग करके इंस्टॉलेशन के साथ DOM के माध्यम से आउटपुट की पुष्टि करता है।
स्टेप-बाय-स्टेप गाइड
चरण 1: पैकेज स्थापित करें
git clone https://github.com/aspose-html-foss/Aspose.HTML-FOSS-for-Python.git
cd Aspose.HTML-FOSS-for-Python
pip install -e .चरण 2: आवश्यक क्लासेज़ आयात करें
from aspose_html.html_document import HTMLDocument
from aspose_html.dom import Documentचरण 3: सही पार्सिंग एंट्री पॉइंट चुनें
HTMLDocument.parse() पूर्ण-दस्तावेज़ ट्री निर्माण को मानक त्रुटि पुनर्प्राप्ति के साथ चलाता है; HTMLDocument.parse_fragment() आंशिक मार्कअप के लिए फ़्रैगमेंट एल्गोरिदम लागू करता है; HTMLDocument.load() स्रोत से पढ़ता है। पार्स किए गए तत्व टाइप्ड होते हैं — एक <a> एक HTMLAnchorElement है, एक <input> एक HTMLInputElement है।
चरण 4: DOM के माध्यम से आउटपुट सत्यापित करें
पार्स किया गया परिणाम एक सामान्य DOM ट्री है — वही लुकअप और एट्रिब्यूट API लागू होते हैं। प्रोग्रामैटिक रूप से समकक्ष संरचना बनाना साझा सतह को दर्शाता है:
doc = Document()
el = doc.create_element("div")
el.set_attribute("id", "content")
doc.append_child(el)
print(doc.get_element_by_id("content").has_child_nodes())चरण 5: स्टाइल या संरचना के साथ जारी रखें
स्टाइलशीट संलग्न करें और गणना किए गए स्टाइल पढ़ें, या स्थानीय संपादन के लिए Element इन्सर्शन हेल्पर्स (insert_adjacent_html(), insert_adjacent_text()) का उपयोग करें — पार्सिंग आउटपुट हर अन्य लेयर को फ़ीड करता है।
सामान्य समस्याएँ और समाधान
आंशिक मार्कअप को html और body रैपर मिलते हैं। parse() पूरा-दस्तावेज़ नियम लागू करता है; उपयोग करें parse_fragment() स्निपेट्स के लिए।
गलत स्वरूपित मार्कअप बिना त्रुटियों के पार्स हो जाता है। यह मानकों का व्यवहार है — ट्री निर्माण प्रत्येक त्रुटि मामले के लिए पुनर्प्राप्ति को परिभाषित करता है, न कि त्रुटि उत्पन्न करना।
टेबल सामग्री अपनी टेबल के बाहर प्रकट होती है। गलत जगह स्थित टेबल सामग्री का फोस्टर पेरेंटिंग एल्गोरिद्म का हिस्सा है; स्रोत नेस्टिंग को ठीक करें।
अक्सर पूछे जाने वाले प्रश्न
क्या पार्स किए गए तत्व टाइप किए गए हैं?
हाँ — पार्सिंग HTMLElement पदानुक्रम उत्पन्न करती है: फ़ॉर्म कंट्रोल्स (HTMLFormElement, HTMLInputElement), एम्बेडेड कंटेंट (HTMLImageElement, HTMLCanvasElement), नेविगेशन (HTMLAnchorElement), और अधिक।
क्या मैं पार्सिंग पाइपलाइन को निचले स्तर पर नियंत्रित कर सकता हूँ?
हाँ — Tokenizer और TreeBuilder सार्वजनिक हैं, और parse_html() एक-काल रैपर के रूप में है।
क्या पार्सिंग स्क्रिप्ट्स चलाती है?
नहीं। स्क्रिप्ट मूल्यांकन स्पष्ट और अलग है JSContext के माध्यम से।