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 සේවාදායකය බෙදා ගත්තත් සෑම ප්රතිචාරයක්ම තමන්ගේම ලේඛනයක් නිපදවිය යුතුය.