【问题标题】:HTML Parsing Libraries for .NET [closed].NET 的 HTML 解析库 [关闭]
【发布时间】:2010-10-13 19:02:09
【问题描述】:

我正在寻找用于解析 HTML 以提取链接、表单、标签等的库。

LGPL 或任何其他商业开发友好的许可证是可取的。

您对其中一个库有任何经验吗?或者你能推荐另一个类似的库吗?

【问题讨论】:

    标签: .net html dom parsing


    【解决方案1】:

    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");
    

    【讨论】:

    • HTML Agility Pack 很棒,我也推荐它。
    • 同意。我们在生产环境中使用了它,在那里我们连续几年解析大约 50,000 (X)HTML 文件/小时。效果很好。
    • 你对 GPL 项目有什么建议吗? HTML Agility Pack 是 Ms-Pl,即 incompatible with the GPL
    • @Cole bleugh;该死的我讨厌那个(GPL)许可证!但是:好消息是 GPL 受害者完全“免费”不使用该非 GPL 库并在兼容许可下编写另一个库:)
    猜你喜欢
    • 2010-10-25
    • 1970-01-01
    • 2016-03-23
    • 2010-09-19
    • 2011-08-18
    • 1970-01-01
    • 2014-01-10
    • 1970-01-01
    • 2011-12-20
    相关资源
    最近更新 更多