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 خېرىدارىنى ئورتاقلاشسىمۇ ھەر بىر جاۋاب ئۆزىنىڭ ھۆججىتىنى ھاسىل قىلىشى كېرەك.