Html Agility Pack ने पार्स करण्यापूर्वी प्रॉक्सीद्वारे HTML आणा
प्रॉक्सी-कॉन्फिगर केलेला HttpClient Html Agility Pack सोबत जोडा आणि नेटवर्क त्रुटी HTML पार्सिंगपासून वेगळ्या ठेवा.
using var handler = new HttpClientHandler
{
UseProxy = true,
Proxy = new WebProxy("http://proxy.example:8080")
};
using var client = new HttpClient(handler);
string html = await client.GetStringAsync(
"https://www.example.com/catalog");
var document = new HtmlAgilityPack.HtmlDocument();
document.LoadHtml(html);हा आधुनिक .NET तुकडा System.Net आणि System.Net.Http वापरतो. कॉन्फिगर केलेला क्लायंट नेटवर्क राउटिंग हाताळतो आणि Html Agility Pack परत मिळालेली HTML स्ट्रिंग घेतो. प्रत्येक पृष्ठासाठी त्याचे पूल पुन्हा तयार करण्याऐवजी सुरू असलेल्या कामासाठी योग्यरीत्या कॉन्फिगर केलेला क्लायंट ठेवा.
या सार्वजनिक पृष्ठाच्या उदाहरणासाठी, HTTP प्रॉक्सी सूचीमधील अनाप्रमाणित उमेदवार मध्यस्थाची जागा घेऊ शकतो. गंतव्य स्वतंत्रपणे बदला. वेबसाइटचा URL त्याची TLS ओळख टिकवतो. प्रमाणित प्रॉक्सी क्रेडेन्शियल्स WebProxy वर असतात; वेबसाइट क्रेडेन्शियल्स किंवा अक्षम केलेली पडताळणी त्यांची जागा घेत नाहीत.
GetStringAsync अयशस्वी HTTP स्थिती त्रुटी मानतो. अयशस्वी डाउनलोड रिकाम्या HtmlDocument मध्ये बदलू नका. जर ॲप्लिकेशनला हेडर, स्थितीचे तपशील किंवा त्रुटी बॉडी हवी असेल, तर प्रतिसाद-केंद्रित HTTP क्रिया वापरा आणि पार्स करण्यापूर्वी ती तपासा.
स्ट्रिंग पद्धत कच्च्या बाइट्सचे बिनशर्त अतिरिक्त UTF-8 रूपांतरण टाळते. जर तुम्ही जाणूनबुजून बाइट्स आणत असाल, तर प्रतिसाद आणि दस्तऐवजाच्या एन्कोडिंगच्या गरजा डीकोडिंगमध्ये न्या.
LoadHtml पार्स केलेला दस्तऐवज तयार करतो; तो स्क्रिप्ट चालवत नाही, शैली लोड करत नाही किंवा दुवे अनुसरत नाही. पुढील सापेक्ष दुवे प्रतिसादाच्या स्थानाच्या संदर्भात सोडवा आणि लक्षात ठेवा की ब्राउझरने रेंडर केलेले घटक डाउनलोड केलेल्या स्रोतात नसू शकतात. विनंत्या एकच कॉन्फिगर केलेला HTTP क्लायंट सामायिक करत असल्या तरी प्रत्येक प्रतिसादाने स्वतःचा दस्तऐवज तयार केला पाहिजे.