HTML敏捷包获取所有类为div的元素

8
我正在尝试爬取一个复杂的HTML页面。我需要获取某些特定类别的div中的文本内容。
我的目标是使用HTML Agility Pack遍历整个HTML页面,找出所有类包含“listevent”的div,并将其返回给我。
当我在网上搜索时,发现如果进行映射,这是可能的,但其中一些div位于许多其他div的下面,因此寻找一些简单的方法。
HTML页面如下所示:
<div>
    <div>
       <table>
          <tr>
            <td>
              <div class="thisone listevent"></td>
            <td>
              <div class="thisone listevent"></td>
           </tr>
         </table>
     </div>
 </div>

1
你可以使用字符串的索引而不需要HTMLAgility包来完成它。如果你展示一下你想要解析的HTML,这将有助于其他人更好地回答你的问题。 - Irfan TahirKheli
请提供HTML代码或链接以帮助您。 - Victor Sigler
1个回答

17

你可以使用SelectNodes方法。

foreach(HtmlNode div in document.DocumentNode.SelectNodes("//div[contains(@class,'listevent')]"))
{
}

如果您更熟悉CSS样式选择器,可以尝试使用fizzler并执行此操作。

document.DocumentNode.QuerySelectorAll("div.listevent"); 

我尝试过但返回了null。除非我精确映射div的位置(我的意思是像SelectNodes("//div/div/td/...")这样),否则所有都为null。 - Burak Gazi
抱歉,显然我在加载HTML时遇到了问题。 - Burak Gazi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接