So lesen Sie die HTML-Quelle von einer HTTPS-URL

.net c# html html-agility-pack

Frage

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

Bildbeschreibung hier eingeben

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

Akzeptierte Antwort

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

Beliebte Antwort

ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
WebClient webClient = new WebClient();
string htmlString = w.DownloadString(url);


Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum