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);

Þetta nútímalega .NET-brot notar System.Net og System.Net.Http. Stillti biðlarinn sér um netleiðsögn og Html Agility Pack tekur við skilaða HTML-strengnum. Haltu viðeigandi stilltum biðlara fyrir áframhaldandi vinnu í stað þess að endurbyggja laugar hans fyrir hverja síðu.

Fyrir þetta dæmi um opinbera síðu getur óauðkenndur frambjóðandi úr HTTP-umboðslistanum komið í stað milliliðarins. Skiptu um áfangastað sérstaklega. Veffang síðunnar varðveitir TLS-auðkenni sitt. Auðkennd umboðsskilríki tilheyra WebProxy; hvorki skilríki vefsins né óvirkjuð sannprófun koma í þeirra stað.

GetStringAsync meðhöndlar HTTP-stöður sem ekki eru árangursríkar sem villur. Breyttu ekki misheppnaðri niðurhali í tómt HtmlDocument. Ef forritið þarf hausheiti, upplýsingar um stöðu eða villuskropp, notaðu HTTP-aðgerð sem snýr að svari og skoðaðu hana áður en þáttað er.

Strengjaraðferðin forðast skilyrðislausa viðbótar UTF-8-umbreytingu hrára bæta. Ef þú sækir bæti viljandi, færðu kröfur um kóðun svars og skjals yfir í afkóðunina.

LoadHtml framleiðir þáttað skjal; það keyrir ekki skriptur, hleður ekki stílum og fylgir ekki hlekkjum. Leystu síðari hlutfallslega hlekki miðað við staðsetningu svarsins og mundu að þættir sem vafrinn teiknar geta vantað í niðurhalaða uppsprettu. Hvert svar ætti að framleiða sitt eigið skjal jafnvel þótt beiðnir deili sama stillta HTTP-biðlaranum.

Tengdir greinar