我正试图解析由澳大利亚政府网站提供的代表一年温度数据的HTML表格。
该表的设置方式不同寻常:列是月份,行是一个月中的几天(因此第一行的单元格是JAN 1、FEB 1、MAR 1)。如果当天记录了数据,则每个单元格都包含一个数字;如果没有记录数据,则包含一个空单元格;如果当天不存在(例如2月31日),则包含单元格类notDay
。
我的意图是以格式建立一个充满这些数据的数据库
DATE RAINFALL MAX TEMP
2015-02-07 35 31
2015-02-07 40 17
我的问题是:解析表以将数据转换为可用格式的最简单或最有效(就程序员效率而言)的方法是什么?
我个人在Nokogiri库中使用Ruby,但如果有助于更好地进行讨论,则欢迎提供一般的非语言特定算法/方法建议。我不是在找人为我编写代码和解决问题的人,而是在寻求有关方法的建议。
我想知道你是否可以:
按出现的顺序取所有单元格:
- 如果您有数组的情况,请使用
Array#flatten
丢弃任何带有Array#reject
的notDay
细胞
使用日期范围迭代所有相关日期:
(Date.new(2014,1,1) .. Date.new(2014,12,31)).each {...}
然后从那里走。。。?