你如何解析 HTML table 表示时间?

How do you parse a HTML table representing time?

我正在尝试解析 this HTML table 代表一年的温度数据,由澳大利亚政府网站提供。

此 table 的设置方式不同寻常:列是月份,行是月份中的几天(因此第一行的单元格是 JAN 1、FEB 1、MAR 1)。如果当天记录了数据,则每个单元格包含一个数字;如果没有记录数据,则每个单元格包含一个空单元格;如果该日期不存在(例如,2 月 31 日),则单元格 class notDay

我的目的是建立一个包含格式为

的数据的数据库
DATE            RAINFALL        MAX TEMP
2015-02-07        35                31
2015-02-07        40                17

我的问题是:解析 table 以将数据转换为可用格式的最简单或最有效(就程序员效率而言)的方法是什么?

我个人将 Ruby 与 Nokogiri 库一起使用,但如果可以进行更好的讨论,欢迎提出一般的非特定语言的 algorithm/approach 建议。我不是在找人为我编写代码和解决问题,而是在寻求有关采用方法的建议。

不知道你能不能:

按照出现的顺序获取所有单元格:

  • 如果遇到数组数组的情况,请使用 Array#flatten

丢弃任何 notDay 个带有 Array#reject

的单元格

使用日期范围迭代所有相关日期:

(Date.new(2014,1,1) .. Date.new(2014,12,31)).each {...}

然后从那里去...?