你如何解析 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 {...}
然后从那里去...?
我正在尝试解析 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 {...}
然后从那里去...?