Ich versuche, den HTML-Quellcode einer https-URL in c # mit dem folgenden Code zu lesen:
WebClient webClient = new WebClient();
string htmlString = w.DownloadString("https://www.targetUrl.com");
Dies funktioniert nicht für mich, da ich codierte HTML-Zeichenfolge bekomme. Ich habe versucht, HtmlAgilityPack zu verwenden, aber ohne Hilfe.
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(htmlString);
Diese URL gibt eine komprimierte gzip-Zeichenfolge zurück. WebClient
unterstützt dies standardmäßig nicht, daher sollten Sie stattdessen die zugrunde liegende HttpWebRequest
Klasse HttpWebRequest
. Krasse Abzocke der Antwort von feroze hier - Entpacken Sie die gzip-Antwort automatisch über WebClient.DownloadData
class MyWebClient : WebClient
{
protected override WebRequest GetWebRequest(Uri address)
{
HttpWebRequest request = base.GetWebRequest(address) as HttpWebRequest;
request.AutomaticDecompression = DecompressionMethods.Deflate | DecompressionMethods.GZip;
return request;
}
}
ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
WebClient webClient = new WebClient();
string htmlString = webClient.DownloadString(url);