ទាញយក HTML តាមរយៈប្រូកស៊ី មុនពេលញែកវិភាគជាមួយ Html Agility Pack
រួមបញ្ចូល 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 ដែលបានកំណត់ដូចគ្នាក៏ដោយ។