【问题标题】:Best way to parse HTML table解析 HTML 表格的最佳方法
【发布时间】:2011-12-14 02:18:34
【问题描述】:

我有兴趣解析下表和其他类似的表格: http://www.cityofames.org/ftp/routes/Fall/wdreds&w.html

对于这项工作的最佳工具有什么建议吗?在四处搜索之后,我无法决定我应该使用什么,并希望在承诺之前获得一些反馈。

我对任何语言/工具持开放态度。

【问题讨论】:

  • 你想解析成什么格式?
  • @Petah:我希望将列分成时间数组,或者类似的东西。
  • 什么样的数组,JSON,PHP等
  • @Petah:嗯,我正在考虑在本地创建一个新文件,可能以 CSV 之类的格式在其他地方使用。因此,这将有助于实现这一目标。很抱歉这么含糊。

标签: html xml parsing


【解决方案1】:

如果您正在寻找 HTML 解析器,Java 中有很多选项:

您可能还想就使用这些here 的利弊进行非常全面的讨论。

【讨论】:

    【解决方案2】:

    有了 lynx,我可以做到:

    $ lynx -dump http://www.cityofames.org/ftp/routes/Fall/wdreds\&w.html
        6:25  6:31  6:36  6:41 -----  6:46  6:50      6:56
        7:02  7:08  7:14  7:20 -----  7:26  7:30      7:36
       ----- ----- ----- -----  7:38  7:43  7:47      7:53 1A
        7:28  7:35  7:42  7:48 -----  7:56  8:00      8:06
       ----- ----- ----- -----  7:58  8:03  8:07      8:13 1A
    ...
    

    使用选择的脚本语言变得非常容易解析,html2text 也可以工作(从未使用过)。

    你也可以使用 grep/sed 来格式化它。

    【讨论】:

      【解决方案3】:

      HTML 太难被任何解析器理解。您需要首先使用 tidy (http://tidy.sourceforge.net/) 之类的程序将其转换为合理接近的 XML 格式(对于格式良好的表示匹配的标签),例如 XHTML。 然后,您可以使用 XML/XHTML 解析器来解析格式正确的 XML。请注意,您必须根据字体样式处理数据,并将基于字体样式的标签转换为时间数组。

      这是解析时可以做的事情

      start TR element
        --Create Array
       start b element
        -- Add One time
       end b element
       start b element
        -- Add second time
       end b element
      end TR element        
      

      【讨论】:

        猜你喜欢
        • 2011-09-15
        • 2011-05-03
        • 2011-06-21
        • 2011-04-06
        • 2011-02-18
        相关资源
        最近更新 更多