为C#程序员提供更好的Web抓取选项(HTMLAgilityPack或Python + beautifulsoup)

use*_*009 2 c# python beautifulsoup html-agility-pack

我是一名.NET程序员.我需要处理网络抓取项目.我想了解HTMLAgilityPack vs BeautifulSoup.

很多人说,BeautifulSoup比HTMLAgilityPack要好得多.但为此,我需要学习Python.

所以,我的问题是,我学习Python和BeautifulSoup还是继续使用C#和HTMLAgilityPack是否合理?

任何其他建议都受到热烈欢迎.

Jam*_*rgy 5

我创建的库CsQuery是Html Agility Pack的一个相对新的替代品.它具有以下优点:

  • 完整的CSS3选择器支持,对于大多数人来说已经比xpath更熟悉,也更容易,就像你已经为客户编码一样
  • jQuery API,出于同样的原因
  • 使用validator.nu HTML解析器,一个完全符合HTML5的解析器.这与基于Gecko的浏览器(Firefox)使用的代码库相同,这意味着它应该生成与Web浏览器完全相同的DOM,即使是典型的错误/无效标记.
  • 索引文档使得选择器非常快,即使在非常大的文档上也是如此.HAP必须遍历每个选择器的完整文档树,这使得复杂选择器和大型文档的速度非常慢.
  • 广泛的单元测试覆盖率 - 来自jQuery和Sizzle(jQuery CSS选择引擎)的所有测试都已移植到C#.

缺点:

  • 现在只能编译.NET 4+完整框架,而HAP则适用于大多数.NET环境.

你可以从nuget得到它:Install-Package CsQuery.