首页 > 解决方案 > 无法访问 HTML 文档中的特定元素(使用 HTML Agility)

问题描述

我正在开发一个需要从网站上抓取某些信息的 C# 项目,因此我使用 HTMLAgilityPack 来帮助我解决这个问题。我对这种事情很陌生,我遇到了无法从加载的 HTML 文档中检索某些元素的墙。

以前,我已经能够通过指定它们的内容来检索大量节点:

 var importantLinks = htmlDoc.DocumentNode.Descendants("a")
            .Where(node => node.GetAttributeValue("href", "").Contains("details"))

现在,对于特定系列的节点,即使使用非常特定的标识符,我也无法访问它们。

在此处输入图像描述

我想访问这些链接的内部文本,但似乎无法访问。我试图通过指定它们的类包含“图像”、“图像列表”等来搜索它们,但它们从未被找到。我也尝试过使用它的 id 搜索他们的父母,然后提取它的孩子,这也不起作用。

作为新手,我想知道我是否遗漏了一些明显的东西。

有什么见解吗?

标签: c#html

解决方案


试试这个例子,它可以帮助我从C-Sharp Corner思考

HtmlDocument document2 = new HtmlDocument();  
document2.Load(@"C:\Temp\sample.txt");  
   
HtmlNode[] nodes = document2.DocumentNode.SelectNodes("//a").Where(x=>x.InnerHtml.Contains("div2")).ToArray();  
foreach (HtmlNode item in nodes)  
{  
    Console.WriteLine(item.InnerHtml);  
}  

使用 HTML 代码:

<html>  
<head>  
</head>  
<body>  
    <div id="div1">  
        <a href="div1-a1">Link 1 inside div1</a>  
        <a href="div1-a2">Link 2 inside div1</a>  
    </div>  
    <a href="a3">Link 3 outside all divs</a>      
    <div id="div2">  
        <a href="div2-a1">Link 1 inside div2</a>  
        <a href="div2-a2">Link 2 inside div2</a>  
    </div>  
</body>  
</html>  

推荐阅读