आप जैसे पाठक MUO का समर्थन करने में मदद करते हैं। जब आप हमारी साइट पर लिंक का उपयोग करके खरीदारी करते हैं, तो हम संबद्ध कमीशन अर्जित कर सकते हैं। और पढ़ें।

पार्सिंग एक दस्तावेज़ की संरचना का विश्लेषण और व्याख्या कर रहा है। पार्सिंग प्रक्रिया में दस्तावेज़ से विशिष्ट तत्वों, विशेषताओं या डेटा को निकालना और विशिष्ट मानकों या नियमों का पालन करते हुए यह सत्यापित करना शामिल हो सकता है कि दस्तावेज़ अच्छी तरह से स्वरूपित है। पार्सिंग का उपयोग मुख्य रूप से वेब पेजों से डेटा निकालने या उपयोगकर्ताओं को प्रदर्शित करने से पहले वेब पेजों की संरचना में हेरफेर करने के लिए किया जाता है।

गो दस्तावेजों के साथ काम करने के लिए पैकेज प्रदान करता है, जिसमें वेबपेजों में लोकप्रिय रूप से उपयोग किए जाने वाले एचटीएमएल और एक्सएमएल प्रारूप शामिल हैं। एचटीएमएल पैकेज HTML को टोकन करने और पार्स करने के लिए कार्य प्रदान करता है।

एचटीएमएल पैकेज

एचटीएमएल पैकेज HTML5-संगत टोकननाइज़र और पार्सर प्रदान करता है जो HTML दस्तावेज़ों को पार्स करने और हेरफेर करने, पार्स पेड़ को घुमाने और पेड़ की संरचना में हेरफेर करने के लिए प्रदान करता है। एचटीएमएल पैकेज गो के मानक पुस्तकालय का एक अंतर्निहित पैकेज है।

instagram viewer

की मुख्य विशेषताओं में से एक है एचटीएमएल पैकेज है पार्स फ़ंक्शन जो HTML दस्तावेज़ों को पार्स कर सकता है और पार्स ट्री के रूट नोड को वापस कर सकता है, जहाँ से आप जैसे फ़ंक्शंस का उपयोग कर सकते हैं पहला बच्चा और अगलाभाई ट्री को नेविगेट करने और दस्तावेज़ से जानकारी निकालने के लिए। पैकेज भी प्रदान करता है ParseFragment HTML दस्तावेज़ों के टुकड़ों को पार्स करने का कार्य।

एस्केपस्ट्रिंग फ़ंक्शन HTML में सुरक्षित समावेशन के लिए स्ट्रिंग्स में विशेष वर्णों से बचने के लिए आसान है; आप इस फ़ंक्शन का उपयोग रोकने के लिए कर सकते हैं क्रॉस-साइट स्क्रिप्टिंग (एक्सएसएस) विशेष वर्णों को उनके संबंधित HTML संस्थाओं में परिवर्तित करके हमला करता है।

के साथ आरंभ करने के लिए एचटीएमएल पैकेज, आप पैकेज को अपनी गो प्रोजेक्ट फाइलों में आयात कर सकते हैं।

आयात"golang.org/x/net/html"

एचटीएमएल पैकेज एचटीएमएल उत्पन्न करने के लिए कोई कार्य प्रदान नहीं करता है। इसके बजाय, आप html/टेम्प्लेट पैकेज का उपयोग कर सकते हैं, जो HTML टेम्प्लेट बनाने के लिए कार्यों का एक सेट प्रदान करता है। एचटीएमएल/टेम्प्लेट पैकेज एक फ़ंक्शन प्रदान करता है टेम्पलेट। HTMLएस्केप प्रतिसाद लेखक को HTML के एस्केप्ड संस्करण लिखने के लिए।

एचटीएमएल/टेम्प्लेट पैकेज भी मानक पुस्तकालय का हिस्सा है, और यहां बताया गया है कि आप पैकेज कैसे आयात कर सकते हैं।

आयात"एचटीएमएल/टेम्प्लेट"

एचटीएमएल package गो इकोसिस्टम में सबसे लोकप्रिय रूप से इस्तेमाल किया जाने वाला टेंपलेटिंग पैकेज है और विभिन्न संचालन और डेटा प्रकारों का समर्थन करता है।

गो में एचटीएमएल पार्सिंग

पार्स का कार्य एचटीएमएल पैकेज HTML टेक्स्ट और दस्तावेज़ों को पार्स करने में मदद करता है। पार्स समारोह एक में लेता है कब। पाठक उदाहरण के रूप में यह पहला तर्क है जिसमें फ़ाइल दस्तावेज़ और एक *html। नोड उदाहरण, जो HTML दस्तावेज़ का रूट नोड है

यहां बताया गया है कि आप कैसे उपयोग कर सकते हैं पार्स वेबपेज को पार्स करने और वेब पेज पर सभी यूआरएल वापस करने के लिए कार्य करता है।

आयात (
"एफएमटी"
"golang.org/x/net/html"
"नेट/एचटीटीपी"
)

समारोहमुख्य() {
// example.com वेब पेज पर HTTP GET अनुरोध भेजें
सम्मान, त्रुटि: = http. पाना(" https://www.example.com")
अगर गलती! = शून्य {
fmt. प्रिंटलन("गलती:", गलती)
वापस करना
}
आस्थगित करें सम्मान। शरीर। बंद करना()

// अनुरोध से प्रतिक्रिया निकाय को पार्स करने के लिए html पैकेज का उपयोग करें
डॉक्टर, गलती: = html. पार्स (सं. शरीर)
अगर गलती! = शून्य {
fmt. प्रिंटलन("गलती:", गलती)
वापस करना
}


// वेब पेज पर सभी लिंक ढूंढें और प्रिंट करें
वर लिंक []डोरी
वर जोड़ना समारोह(* एचटीएमएल। नोड)
लिंक = समारोह(एन * एचटीएमएल। नोड) {
अगर एन। टाइप करें == एचटीएमएल। एलिमेंटनोड और& एन। डेटा == "ए" {
के लिए _, ए: = श्रेणी एन। आकर्षण {
अगर एक। कुंजी == "href" {
// विशेषता से मेल खाने पर एक नई लिंक प्रविष्टि जोड़ता है
लिंक = संलग्न(लिंक्स, ए. वैल)
}
}
}

// पहले चाइल्ड नोड से वेबपेज के HTML को ट्रेस करता है
के लिए ग:=न. पहला बच्चा; सी! = शून्य; सी = सी। अगलाभाई {
लिंक (सी)
}
}
लिंक (दस्तावेज़)

// लिंक स्लाइस के माध्यम से लूप
के लिए _, ल:= श्रेणी लिंक {
fmt. प्रिंटलन("जोड़ना:", एल)
}
}

मुख्य फ़ंक्शन वेबसाइट के साथ HTTP GET अनुरोध भेजता है पाना का कार्य एचटीटीपी पैकेज और पृष्ठ प्रतिक्रिया निकाय को पुनः प्राप्त करता है। पार्स का कार्य एचटीएमएल पैकेज प्रतिक्रिया निकाय को पार्स करता है और HTML दस्तावेज़ लौटाता है।

लिंक वेरिएबल स्ट्रिंग्स का वह भाग है जो वेबपेज से URLs को होल्ड करेगा। जोड़ना फ़ंक्शन पॉइंटर संदर्भ में लेता है नोड के लिए विधि एचटीएमएल पैकेज, और चाबी नोड से विशेषता उदाहरण की विधि निर्दिष्ट विशेषता में निहित डेटा लौटाती है (इस मामले में, href). फ़ंक्शन दस्तावेज़ के साथ ट्रैवर्स करता है अगलाभाई विधि से पहला बच्चा वेबपेज पर हर URL को प्रिंट करने के लिए नोड। अंत में, for लूप सभी URL को प्रिंट करता है लिंक टुकड़ा।

यहाँ ऑपरेशन का परिणाम है।

गो में एचटीएमएल उत्पन्न करना

एचटीएमएल/टेम्प्लेट पैकेज एचटीएमएल टेम्पलेट्स के सुरक्षित और कुशल पार्सिंग और निष्पादन के लिए कार्यों का एक सेट प्रदान करता है। पैकेज के संयोजन के साथ उपयोग के लिए डिज़ाइन किया गया है एचटीएमएल पैकेज, जो HTML को पार्स करने और हेरफेर करने के लिए कार्य प्रदान करता है।

आप इसके साथ सर्वर-साइड रेंडरिंग के लिए HTML उत्पन्न कर सकते हैं एचटीएमएल/टेम्प्लेट पैकेट। ईमेल भेजने, सर्वर-साइड फ्रंटएंड रेंडरिंग, और बहुत कुछ जैसे कई उपयोग मामलों के लिए HTML उत्पन्न करना आसान है। आप अपने वेबपेज के HTML को इंटरैक्ट और मैनिपुलेट करने के लिए बिल्ट-इन गो डेटा टाइप्स जैसे मैप्स और स्ट्रक्चर्स का उपयोग कर सकते हैं।

आपको समझना होगा HTML टेम्प्लेटिंग सिंटैक्स पर जाएं के साथ सफलतापूर्वक HTML उत्पन्न करने के लिए एचटीएमएल/टेम्प्लेट पैकेट।

आयात (
"एचटीएमएल/टेम्प्लेट"
"ओएस"
)

प्रकार वेब पृष्ठ struct {
शीर्षक डोरी
शीर्षक डोरी
मूलपाठ डोरी
}

समारोहमुख्य() {
// टेम्पलेट को परिभाषित करें
टीएमपीएल: = `



{{।शीर्षक}}


{{शीर्षक}}


{{।मूलपाठ}}



`

// टेम्प्लेट में उपयोग किए जाने वाले डेटा को परिभाषित करें
वेब: = वेबपेज {
शीर्षक: "एक उदाहरण पृष्ठ",
शीर्षक: "मेरी वेबसाइट पर स्वागत है!",
मूलपाठ: "यह मेरी वेबसाइट का होम पेज है।",
}

// एक नया टेम्प्लेट बनाएं और टेम्प्लेट स्ट्रिंग को पार्स करें
टी, त्रुटि: = Template. नया("वेब पृष्ठ".पार्स (tmpl)
अगर गलती! = शून्य {
घबड़ाहट(गलत)
}

// टेम्प्लेट निष्पादित करें और परिणाम को स्टडआउट पर लिखें
त्रुटि = टी। निष्पादित करें (ओएस। स्टडआउट, वेब )
अगर गलती! = शून्य {
घबड़ाहट(गलत)
}
}

tmpl चर HTML स्ट्रिंग रखता है। HTML स्ट्रिंग पृष्ठ शीर्षक को परिभाषित करने के लिए गो टेंपलेटिंग सिंटैक्स का उपयोग करती है, a एच 1 शीर्ष लेख, और पाठ का एक पैराग्राफ। वेब पृष्ठ संरचना वेबपेज के लिए डेटा फ़ील्ड को परिभाषित करती है शीर्षक, शीर्षक, और मूलपाठ खेत।

पार्स की विधि नया टेम्पलेट पैकेज का कार्य टेम्पलेट स्ट्रिंग के साथ एक नया टेम्पलेट बनाता और पार्स करता है। अमल में लाना नए टेम्प्लेट इंस्टेंस का फ़ंक्शन आपके स्ट्रक्चर इंस्टेंस से डेटा के साथ टेम्प्लेट को निष्पादित करता है और परिणाम को मानक आउटपुट पर लौटाता है (इस मामले में, यह परिणाम को कंसोल पर प्रिंट करता है)।

गो के साथ वेब एप्लिकेशन बनाएं

गो के साथ HTML को पार्स करने और जनरेट करने के बारे में सीखना अधिक परिष्कृत वेब एप्लिकेशन बनाने की दिशा में सही दिशा में एक कदम है गो के साथ। आप अपने वेब का सर्वर साइड बनाने के लिए जिन और इको जैसे फ्रेमवर्क और गोरिल्ला मक्स और ची राउटर जैसे राउटर का उपयोग कर सकते हैं आवेदन पत्र।

इन पैकेजों पर बनाया गया है नेट/एचटीटीपी पैकेज (गो में एचटीटीपी के साथ इंटरैक्ट करने के लिए बिल्ट-इन पैकेज) और गो में सर्वर और राउटर स्थापित करने की जटिलताओं को सार करता है।