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

时间:2015-02-07 02:30:52

标签: ruby parsing nokogiri

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

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

我的目的是以

格式构建一个包含此数据的数据库
DATE            RAINFALL        MAX TEMP
2015-02-07        35                31
2015-02-07        40                17

我的问题是:最简单或最有效(在程序员效率方面)解析表格以使数据成为可用格式的方式是什么?

我个人使用Ruby和Nokogiri库,但如果能够进行更好的讨论,我们会欢迎一般的非语言特定的算法/方法建议。我并不是在寻找代表编写代码并为我解决问题的人,而是寻求有关采取方法的建议。

1 个答案:

答案 0 :(得分:1)

我想知道你是否可以:

按照出现的顺序拍摄所有单元格:

  • 如果您有阵列数组,请使用Array#flatten

放弃notDay

的所有Array#reject个单元格

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

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

从那里开始......?