HTMLAgilityPack - 按类获取类中的元素

Ale*_*ric 0 c# xpath web-scraping html-agility-pack

我希望从下面所示的“listicle-page”类中的H2 (突出显示)元素获取值。目前,代码获取DIV元素中的所有值,而我只需要获取下面的类中包含的H2的值。

考虑以下 HTML:

单击此处查看 HTML

请参阅下面的代码 -

private void getFact()
        {
            HtmlAgilityPack.HtmlWeb web = new HtmlAgilityPack.HtmlWeb();
            HtmlAgilityPack.HtmlDocument doc = web.Load("https://www.rd.com/culture/interesting-facts/");

            var headerNames = doc.DocumentNode.SelectNodes("//div[@class='listicle-page']").ToList();

            foreach(var item in headerNames)
            {
                MessageBox.Show(item.InnerText);
            }
        }
Run Code Online (Sandbox Code Playgroud)

And*_*son 6

您的 XPath将节点与其所有后代相//div[@class='listicle-page']匹配。div如果您只需要选择子h2节点,则通过添加显式指定它/h2

//div[@class='listicle-page']/h2
Run Code Online (Sandbox Code Playgroud)