Hae HTML välityspalvelimen kautta ennen jäsentämistä Html Agility Packilla
Yhdistä välityspalvelimen kautta määritetty HttpClient Html Agility Packiin ja pidä verkkovirheet erillään HTML:n jäsentämisestä.
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);Tämä moderni .NET-katkelma käyttää System.Net- ja System.Net.Http-nimiavaruuksia. Määritetty asiakasohjelma hoitaa verkkoreitityksen, ja Html Agility Pack vastaanottaa palautetun HTML-merkkijonon. Pidä asianmukaisesti määritetty asiakasohjelma jatkuvaa työtä varten sen sijaan, että rakentaisit sen altaat uudelleen jokaista sivua varten.
Tässä julkisen sivun esimerkissä HTTP-välityspalvelinluettelosta valittu tunnistamaton ehdokas voi korvata välittäjän. Korvaa kohde erikseen. Sivuston URL säilyttää TLS-identiteettinsä. Todennetut välityspalvelimen tunnistetiedot kuuluvat WebProxyyn; eivät sivuston tunnistetiedot eivätkä poistettu vahvistus korvaa niitä.
GetStringAsync kohtelee epäonnistuneita HTTP-tilakoodeja virheinä. Älä muunna epäonnistunutta latausta tyhjäksi HtmlDocumentiksi. Jos sovellus tarvitsee otsakkeita, tilan yksityiskohtia tai virherungon, käytä vastauskeskeistä HTTP-toimintoa ja tarkista se ennen jäsentämistä.
Merkkijonomenetelmä välttää raakabittien ehdotonta ylimääräistä UTF-8-muunnosta. Jos haet bittejä tarkoituksella, siirrä vastauksen ja asiakirjan koodausvaatimukset dekoodaukseen.
LoadHtml tuottaa jäsennetyn asiakirjan; se ei suorita skriptejä, lataa tyylejä tai seuraa linkkejä. Ratkaise myöhemmät suhteelliset linkit vastauksen sijainnin suhteen ja muista, että selaimen renderöimät elementit voivat puuttua ladatusta lähteestä. Jokaisen vastauksen tulisi tuottaa oma asiakirjansa, vaikka pyynnöt jakaisivat saman määritetyn HTTP-asiakasohjelman.