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 ደንበኛ ቢጋሩም፣ እያንዳንዱ ምላሽ የራሱን ሰነድ ማፍራት አለበት።