HTMLAgilityPack-按类获取类中的元素

时间:2018-10-19 10:28:06

标签: c# xpath web-scraping html-agility-pack

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

考虑以下HTML:

Click here to see 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);
            }
        }

1 个答案:

答案 0 :(得分:3)

您的XPath //div[@class='listicle-page']div节点及其所有后代匹配。如果仅需要选择子节点h2,则可以通过添加/h2来明确指定它:

//div[@class='listicle-page']/h2