我正在寻找解析HTML的库来提取链接,表单,标签等。
LGPL或任何其他商业开发友好许可证更可取。
您是否有过使用其中一个库的经验?或者你能推荐另一个类似的图书馆吗?
答案 0 :(得分:10)
HTML Agility Pack有这类事物的例子,并使用xpath进行熟悉的查询 - 例如(来自主页),简单地查找所有链接:
foreach(HtmlNode link in doc.DocumentElement.SelectNodes("//a@href")) {
//...
}
修改强>
截至2012年6月19日,上面的代码以及 HTML Agility Pack Examples 页面上显示的唯一代码示例将无效。只需略微调整,如下所示。
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");