(对不起我的英语,我是巴西人)
我正在尝试使用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值为“”。
答案 0 :(得分: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);
}
}