解析完整网页

时间:2015-04-18 00:18:26

标签: c# parsing html-agility-pack

如何使用HTML Agility Pack或任何其他技术解析完整的HTML网页而非特定节点?

我正在使用此代码,但此代码仅解析特定节点,但我需要完整的页面来解析整洁而清晰的内容

List<string> list = new List<string>();
string url = "https://www.google.com";
HtmlWeb web = new HtmlWeb();
HtmlAgilityPack.HtmlDocument doc = web.Load(url);
foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//a"))
{
   list.Add(node.InnerText);
}

2 个答案:

答案 0 :(得分:2)

要使所有后代文本节点使用类似

的内容
var textNodes = doc.DocumentNode.SelectNodes("//text()").
                                 Select(t=>t.InnerText);

获取所有非空后代文本节点

var textNodes = doc.DocumentNode.
                    SelectNodes("//text()[normalize-space()]").
                    Select(t=>t.InnerText);

答案 1 :(得分:0)

SelectNodes("*")。 '*'(星号)是通配符选择器,将获取页面上的每个节点。