2014-10-11 95 views
2

我有一个固定的结构良好的html源码,传入的数据是清晰和小的,只是包含一个小的div列表。我知道使用html解析器进行html解析,但这看起来像一个特定的案例,我不知道我应该使用哪一个。下面Html解析与正则表达式

  • 数据的问题情况清晰,结构良好
  • 数据是小
  • 性能问题,应用程序必须能够得到尽可能多的,因为这是possibble
  • 应用程序将数据写入到MongoDB的数据数据库
  • 实现编程语言将是斯卡拉或Python

任何意见是有价值有啥我应该怎么做?

回答

4

我仍然坚持使用HTML解析器,因为至少有一个特定的数据格式和一个理解格式的专用工具。

如果性能很重要,这里有一个非常快的lxml包。对于HTML,请使用lxml.html

你也可以使用一个真棒BeautifulSoup包和let it use lxml parser under-the-hood。此外,如果您需要解析的数据位于HTML文档的特定部分,您可以通过要求BeautifulSoup仅解析HTML文档的相关部分来获得性能提升,详情请参阅:Parsing only part of a document

而且,要遵循HTML +正则表达式线程的传统,这里是占地为什么你不应该用来解析HTML使用正则表达式的原因参考著名的话题:

+0

我知道什么我不应该使用正则表达式来解析HTML,我知道什么是正则表达式,它实现时会转变什么,是的,我也有自动机课,大部分原因都是关于html不稳定的structres和大量的数据,这是不正确的对于我们的案例,我们有一个很好的结构和小数据来处理。所以,我感谢你的回答,但我认为这不是我们正在寻找的。 – 2014-10-11 20:59:36

+0

@HüseyinZengin谢谢。很难说没有看到你有什么样的数据,有多少数据以及你需要从中解析出哪些数据。我想你最好的选择是自己衡量表现。例如,使用'lxml'和'regex'-only方法来实现它并对其进行基准测试。 – alecxe 2014-10-11 21:02:11