Merrni HTML përmes një proxy përpara analizimit me Html Agility Pack
Kombinoni një HttpClient të konfiguruar me proxy me Html Agility Pack, duke i mbajtur gabimet e rrjetit të ndara nga analiza e 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);Ky fragment modern i .NET përdor System.Net dhe System.Net.Http. Klienti i konfiguruar menaxhon rrugëtimin e rrjetit, dhe Html Agility Pack merr vargun HTML të kthyer. Mbani një klient të konfiguruar si duhet për punë të vazhdueshme në vend që të rindërtoni grupet e tij për çdo faqe.
Për këtë shembull të një faqe publike, një kandidat i paautentikuar nga lista e proxy-ve HTTP mund të zëvendësojë ndërmjetësin. Zëvendësoni veçmas destinacionin. URL-ja e faqes ruan identitetin e saj TLS. Kredencialet e autentikuara të proxy-t i përkasin WebProxy; as kredencialet e faqes as verifikimi i çaktivizuar nuk i zëvendësojnë ato.
GetStringAsync i trajton statuset HTTP jo të suksesshme si gabime. Mos e shndërroni një shkarkim të dështuar në një HtmlDocument bosh. Nëse aplikacioni ka nevojë për koka, detaje statusi ose trup gabimi, përdorni një operacion HTTP të orientuar nga përgjigja dhe ekzaminoni atë përpara analizimit.
Metoda e vargut shmang një konvertim shtesë të pakushtëzuar në UTF-8 të bajteve të papërpunuara. Nëse i merrni bajtet me qellim, transferoni kërkesat e kodimit të përgjigjes dhe dokumentit në dekodim.
LoadHtml prodhon një dokument të analizuar; ai nuk ekzekuton skripte, nuk ngarkon stile dhe nuk ndjek lidhje. Zgjidhni lidhjet relative pasuese në lidhje me vendndodhjen e përgjigjes dhe mbani mend se elementet e renderuara nga shfletuesi mund të mungojnë në burimin e shkarkuar. Çdo përgjigje duhet të prodhojë dokumentin e vet edhe kur kërkesat ndajnë të njëjtin klient HTTP të konfiguruar.