【发布时间】:2013-10-21 00:21:26
【问题描述】:
好的,所以我对 HTMLAgilityPack 中使用的 XPath 查询真的很陌生。
让我们考虑一下这个页面http://health.yahoo.net/articles/healthcare/what-your-favorite-flavor-says-about-you。我想要的是只提取页面内容而不是其他内容。
为此,我首先删除脚本和样式标签。
Document = new HtmlDocument();
Document.LoadHtml(page);
TempString = new StringBuilder();
foreach (HtmlNode style in Document.DocumentNode.Descendants("style").ToArray())
{
style.Remove();
}
foreach (HtmlNode script in Document.DocumentNode.Descendants("script").ToArray())
{
script.Remove();
}
之后我尝试使用 //text() 来获取所有文本节点。
foreach (HtmlTextNode node in Document.DocumentNode.SelectNodes("//text()"))
{
TempString.AppendLine(node.InnerText);
}
但是,我不仅得到了文本,而且还得到了许多 /r /n 字符。
在这方面我需要一些指导。
【问题讨论】:
-
如果你只想要特定的数据,你需要说出来自哪个笔记,因为你从任何地方获取文本。
-
@Darka 基本上我正在尝试为我的搜索引擎构建一个网络爬虫。所以我想基本上从网页的任何地方获取有用的文本,特别是我想获取所有
标签的内容值。
标签: c# .net xpath xml-parsing html-agility-pack