【发布时间】:2013-08-21 10:58:13
【问题描述】:
我正在尝试使用HTMLagilitypack 从网页中提取所有内容。
foreach (HtmlTextNode node in doc.DocumentNode.SelectNodes("//text()"))
{
sb.AppendLine(node.Text);
}
当我尝试使用上面的代码解析 google.com 时,我得到了很多 javascript。我想要的只是提取网页中的内容,如h 或p 标签。就像在此页面上提取问题、答案、cmets 并删除其他所有内容一样。
我对 XPath 很陌生,不知道该往哪里走。因此,我们将不胜感激。
【问题讨论】:
-
好的,我遇到的
script和style的innerText 也被返回了。因此,删除脚本和样式是必要的,所有的功劳都归于这个人 link -
我不熟悉 HTMLagilitypack,但从 text() 节点获取 Text 对我来说听起来很奇怪。您可以尝试 SelectNodes("//*[text()]") 来获取所有具有文本节点的节点。
标签: c# .net xpath html-parsing html-agility-pack