0

(对不起我的英语,我是巴西人)

我正在尝试使用 HtmlAgilityPack 从 h4 标签中获取 InnerText,我设法在我需要的网站的 4 个标签中的 3 个中获得了该类型的值。但最后一个是最重要的,它只返回一个空值。

是否有可能,网站的构建结构需要不同的方式来获得这个值?

这是我试图提取 InnetText 的特定 h4(“356.386.496,02”):

<h4 class="text-black--opacity-60 fs-20 fs-sm-42 fs-lg-40 w-100 mt-3">
<span class="align-middle fs-12 fs-lg-12 pr-4">R$</span>
"356.386.496,02"
</h4>

我试过这个:

HtmlDocument htmlDocument = new HtmlDocument();
htmlDocument.LoadHtml(data);

var nodes = htmlDocument.DocumentNode.SelectNodes("//h4[@class='text-black--opacity-60 fs-20 fs-sm-42 fs-lg-40 w-100 mt-3']");

foreach (var node in nodes)
{
    Console.WriteLine(node.InnerText);
}
//Result in console:
//=> 

请注意,SelectNodes 方法不返回 null,它完美地找到了 h4 节点,但 InnerText 的值为“”。

4

1 回答 1

1

尝试将“356.386.496,02”替换为 356.386.496,02 或“356.386.496,02”
这个解决方案应该可行

public static void Main()
    {
        var html = 
        @"<h4 class=""text-black--opacity-60 fs-20 fs-sm-42 fs-lg-40 w-100 mt-3"">
<span class=""align-middle fs-12 fs-lg-12 pr-4"">R$</span>
""56.386.496,02""
</h4>";

        var htmlDoc = new HtmlDocument();
        htmlDoc.LoadHtml(html);

        var htmlNodes = htmlDoc.DocumentNode.SelectNodes("//h4[@class='text-black--opacity-60 fs-20 fs-sm-42 fs-lg-40 w-100 mt-3']");

        foreach (var node in htmlNodes)
        {

            Console.WriteLine(node.InnerText);
        }
    }
于 2019-04-04T12:33:50.880 回答