.Net HTML解析器现在和将来

Jac*_*eja 2 .net html-parsing

我一直在使用HTML Agility Pack(在这里推荐很多),我喜欢它,但我有一些担忧.

我正在开发一些新的应用程序,这些应用程序很重要的(X)HTML解析应该在未来几年内运行,所以我想依靠一个看起来像是能够很好地处理日常网络混乱的库.我这样说是因为前段时间我读过一位HAP开发人员的帖子,说明他们在不久的将来遇到的问题,以及应该做的改变,但由于缺乏资源而难以实现.我已经在他们的Codeplex中问过,它的维护者很可能确认了他们想要做什么以及他们有多少时间,我完全理解.

看看其他选项,Majestic 12解析器似乎是人们推荐的另一个很好的选择......但是对它的网站的快速访问告诉我们它的最后版本日期是2008年,超过3年了.

所以我问...有没有人知道一个好的.Net HTML解析器,它背后似乎有很强的发展,所以它可以适应接下来几年所需的一切?它也必须是开源的.也许我要求太多......但为了以防万一.

不要误会我的意思,我喜欢HAP而且我现在对它非常满意,我只是害怕在一段时间内可能发生的事情,并且在深深依赖必须持续的事情之前,我更愿意探索可用的选项.

谢谢!

Sim*_*ier 5

我无法评论未来,但我可以告诉你一些关于我熟悉的Html Agility Pack的事实:

  • 版本1.3是在2000年左右创建的,带有.NET Framework 1.1(这就是为什么这个版本缺少通用列表而我ENumerable<T>支持BTW).那时候,它的主要目标是能够解析现实世界的HTML.2000年的真实世界HTML更多是HTML 3.2,有许多重叠标签(比如FORM 1),而不是HTML 4,5或XHTML.这意味着解析器实际上支持今天的标签汤几乎比10年前更好.
  • 这意味着,与其他库不同,它的实现几乎不知道...... HTML,除了HTML由元素和属性组成之外.例如,它不知道FONT元素.元素(几乎)不透明,属性完全不透明.这就是未来的证明.
  • 我今天仍然在.NET 4中使用这个1.3版本.您可以使用今天的HTML页面完美地使用它.

所以,我不知道将来可能会破坏这种情况的HTML会发生什么?