HTMLAgilityPack ruft die Klasse innerText ab

c# class html-agility-pack http innertext

Frage

Ich versuche den innerText einer Klasse zu bekommen. Das ist mein Code:

using (HttpClient clientduplicate = new HttpClient())
{
    clientduplicate.DefaultRequestHeaders.Add("User-Agent",
        "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident / 6.0)");

    using (HttpResponseMessage responseduplicate = await clientduplicate.GetAsync(@"https://www.investing.com/news/stock-market-news/warren-buffett:-i-bought-$12-billion-of-stock-after-trump-won-456954")
    using (HttpContent contentduplicate = responseduplicate.Content)
    {
        try
        {
            string resultduplicate = await contentduplicate.ReadAsStringAsync();

            var websiteduplicate = new HtmlDocument();
            websiteduplicate.LoadHtml(resultduplicate);

            var titlesduplicate = websiteduplicate.DocumentNode.Descendants("div").FirstOrDefault(o => o.GetAttributeValue("class", "") == "arial_14 clear WYSIWYG newsPage");
            var match = Regex.Match(titlesduplicate.InnerText, @"(.*?)<!--", RegexOptions.Singleline).Groups[1].Value;

            Debug.WriteLine(match.TrimStart());
        }
        catch(Exception ex1)
        {
            var dialog2 = new MessageDialog(ex1.Message);
            await dialog2.ShowAsync();
        }
    }
}

Jetzt ist das Problem, dass dies mir auch den Text auf dem Bild zurückgibt. Ich kann einen Workaround finden, aber ich frage mich, ob es einen anderen Ansatz dafür gibt. Etwas einfacher / schneller.

Plus, wenn ich dies auf anderen Artikeln / URLs verwende, gibt es andere kleinere Fehler.

Akzeptierte Antwort

Es gibt viele Möglichkeiten, dies zu tun. Eine Möglichkeit besteht darin, das Karussell-Div vor dem Aufruf von doc.DocumentNode.Descendants("div").FirstOrDefault(_ => _.Id.Equals("imgCarousel"))?.Remove(); zu entfernen: doc.DocumentNode.Descendants("div").FirstOrDefault(_ => _.Id.Equals("imgCarousel"))?.Remove();



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