用于.NET的HTML解析库

dr.*_*vil 4 .net html parsing dom

我正在寻找解析HTML的库来提取链接,表单,标签等.

LGPL或任何其他商业开发友好许可证是优选的.

你有过这个图书馆的经验吗?或者你能推荐另一个类似的图书馆?

Mar*_*ell 10

HTML敏捷性包恰好有这种类型的事情的例子,使用XPath熟悉的查询-例如(从主页),找到所有链接很简单:

foreach(HtmlNode link in doc.DocumentElement.SelectNodes("//a@href")) {
    //...
}
Run Code Online (Sandbox Code Playgroud)

编辑

截至2012年6月19日,上面的代码以及HTML Agility Pack示例页面上显示的唯一代码示例将不起作用.只需稍微调整,如下所示.

HtmlDocument doc = new HtmlDocument();
doc.Load("file.htm");

foreach (HtmlNode link in doc.DocumentNode.SelectNodes("//a[@href]"))
{
  HtmlAttribute att = link.Attributes["href"];
  att.Value = Foo(att); // fix the link
}
doc.Save("file.htm");
Run Code Online (Sandbox Code Playgroud)

  • HTML Agility Pack很棒,我也推荐它. (2认同)
  • 同意.我们在生产环境中使用它,我们在几年内解析了大约50,000(X)个HTML文件/小时.工作得很好. (2认同)