我正在寻找解析HTML的库来提取链接,表单,标签等.
http://www.majestic12.co.uk/projects/html_parser.php
http://www.netomatix.com/Products/DocumentManagement/HtmlParserNet.aspx
http://www.developer.com/net/csharp/article.php/2230091
LGPL或任何其他商业开发友好许可证是优选的.
你有过这个图书馆的经验吗?或者你能推荐另一个类似的图书馆?
该HTML敏捷性包恰好有这种类型的事情的例子,使用XPath熟悉的查询-例如(从主页),找到所有链接很简单:
foreach(HtmlNode link in doc.DocumentElement.SelectNodes("//a@href")) { //... }
编辑
截至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");