HtmlAgilityPack C# (.NET): पूरी गाइड उदाहरणों के साथ
1. यह क्या है और क्यों ज़रूरी है?
HtmlAgilityPack .NET इकोसिस्टम (C#, VB.NET, F#) के लिए एक शक्तिशाली HTML पार्सिंग लाइब्रेरी है। यह डेवलपर्स को HTML कोड को नेविगेट करने, खोजने, निकालने और संशोधित करने के लिए एक आसान API प्रदान करती है। सामान्य XML पार्सर्स के विपरीत, HtmlAgilityPack विशेष रूप से "गंदे" HTML के साथ काम करने के लिए डिज़ाइन की गई है, जो वास्तविक वेब पर आम है: बिना बंद किए गए टैग, गलत एट्रिब्यूट, नेस्टेड एरर आदि। यह लाइब्रेरी ऐसी खामियों को अपने आप ठीक करती है और एक सही DOM ट्री बनाती है।
इसकी ज़रूरत क्यों है? मुख्य उपयोग के मामलों में शामिल हैं: वेब स्क्रैपिंग (वेबसाइटों से डेटा निकालना), वेब इंटरफ़ेस टेस्टिंग ऑटोमेशन, CMS के बीच कंटेंट माइग्रेशन, HTML रिपोर्ट का विश्लेषण, HTML कोड की सफाई और नॉर्मलाइज़ेशन, और अपने खुद के HTML जनरेटर बनाना। XPath और CSS सेलेक्टर्स (एक्सटेंशन के ज़रिए) के सपोर्ट की बदौलत, यह लाइब्रेरी आपको ज़रूरी एलिमेंट्स को लचीले और सटीक तरीके से चुनने की सुविधा देती है।
HtmlAgilityPack को कम्युनिटी द्वारा सक्रिय रूप से सपोर्ट किया जाता है, इसका सोर्स कोड ओपन है और यह .NET Framework 4.5+, .NET Core 2.0+, .NET 5/6/7/8, साथ ही Xamarin और Unity के साथ संगत है। यह इसे HTML के साथ काम करने वाले किसी भी .NET डेवलपर के लिए एक सार्वभौमिक टूल बनाता है।
2. इंस्टॉलेशन
लाइब्रेरी को NuGet Package Manager के ज़रिए इंस्टॉल किया जाता है। Package Manager Console या .NET CLI टर्मिनल में नीचे दिए गए कमांड में से कोई एक चलाएँ:
// .NET CLI के ज़रिए
dotnet add package HtmlAgilityPack
// Package Manager Console के ज़रिए
Install-Package HtmlAgilityPack
// या NuGet UI के ज़रिए: "HtmlAgilityPack" खोजें और नवीनतम स्थिर वर्शन इंस्टॉल करें
इंस्टॉल करने के बाद, फ़ाइल की शुरुआत में using डायरेक्टिव जोड़ें:
using HtmlAgilityPack;
3. त्वरित शुरुआत — न्यूनतम काम करने वाला उदाहरण
आइए एक सरल उदाहरण देखें: एक HTML स्ट्रिंग लोड करें, सभी लिंक खोजें और उनका टेक्स्ट और URL प्रिंट करें।
using System;
using HtmlAgilityPack;
class Program
{
static void Main()
{
// 1. HTML डॉक्यूमेंट बनाएँ
var htmlDoc = new HtmlDocument();
// 2. HTML लोड करें (असल में यह फ़ाइल या वेब से हो सकता है)
string html = @"
";
htmlDoc.LoadHtml(html);
// 3. XPath का उपयोग करके सभी <a> टैग चुनें
var links = htmlDoc.DocumentNode.SelectNodes("//a");
// 4. प्रत्येक लिंक पर जाएँ और टेक्स्ट और href प्रिंट करें
if (links != null)
{
foreach (var link in links)
{
string text = link.InnerText.Trim();
string href = link.GetAttributeValue("href", "");
Console.WriteLine($"टेक्स्ट: {text}, URL: {href}");
}
}
}
}
आउटपुट:
टेक्स्ट: Example, URL: https://example.com
टेक्स्ट: PythonLib, URL: https://pythonlib.ru
4. मुख्य क्लास और तरीके
नीचे HtmlAgilityPack के प्रमुख क्लास और तरीकों का विस्तृत विवरण और उदाहरण दिए गए हैं।
4.1. HtmlDocument — डॉक्यूमेंट के साथ काम करने के लिए मुख्य क्लास
सिग्नेचर: public class HtmlDocument
विवरण: यह पूरे HTML डॉक्यूमेंट को दर्शाता है। यह HTML को स्ट्रिंग, फ़ाइल या स्ट्रीम से लोड करने और सर्च व मॉडिफिकेशन करने की सुविधा देता है।
पुस्तकालय में भी
TypeScript में इमेज प्रोसेसिंग: Sharp और Jimp से resize और crop
जावा में PDF जनरेशन: iText, Apache PDFBox, OpenPDF लाइब्रेरीज़ का अवलोकन
Java में JWT टोकन: JSON Web Tokens के साथ काम करने की पूरी गाइड
C# (.NET) में JSON प्रोसेसिंग: Newtonsoft.Json और System.Text.Json के लिए पूर्ण गाइड