【问题标题】:Html Parsing vs. RegexHtml 解析与正则表达式
【发布时间】:2014-12-06 18:25:18
【问题描述】:

我有一个固定的结构良好的 html 源,传入的数据清晰而小,只包含一个小 div 列表。我知道使用 html 解析器进行 html 解析,但这看起来像一个特殊情况,我不确定我应该使用哪个。下面的问题条件

  • 数据清晰且结构合理
  • 数据很小
  • 性能很重要,应用程序必须能够获取尽可能多的数据
  • 应用程序将数据写入 MongoDB 数据库
  • 实现编程语言将是 Scala 或 Python

任何意见都很有价值,我该怎么办?

【问题讨论】:

    标签: python html regex scala html-parsing


    【解决方案1】:

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

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

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

    并且,为了遵循 HTML+regex 线程的传统,这里是对著名主题的参考,其中涵盖了不应使用 regex 解析 HTML 的原因:

    【讨论】:

    • 我知道我不应该使用正则表达式来解析 html,我知道什么是正则表达式以及它在实现时会变成什么,是的,我也上过自动机课,大多数原因是关于 html 不稳定的结构和大量的数据,这对于我们的案例来说是不正确的,我们有一个结构良好的小数据要处理。所以,我很感激你的回答,但我认为这不是我们正在寻找的。​​span>
    • @HüseyinZengin 谢谢。如果不查看您拥有什么样的数据、有多少数据以及需要从中解析哪些数据,就很难说清楚。我想你最好的选择是自己衡量性能。例如,使用lxmlregex-only 方法实现它并对其进行基准测试。
    猜你喜欢
    • 1970-01-01
    • 2021-07-20
    • 2012-09-12
    • 2014-05-16
    • 1970-01-01
    • 2014-06-08
    • 1970-01-01
    相关资源
    最近更新 更多