【发布时间】:2011-10-06 01:19:52
【问题描述】:
我有许多来自数据仓库的数据文件要处理,格式如下:
:header 1 ...
:header n
# remarks 1 ...
# remarks n
# column header 1
# column header 2
DATA ROWS
(Example: "#### ## ## ##### ######## ####### ###afp## ##e###")
数据由空格分隔,同时包含数字和其他 ASCII 字符。其中一些数据将被拆分并变得更有意义。
所有数据都将进入一个数据库,最初是一个用于开发的 SQLite 数据库,然后推送到另一个更永久的存储。
这些文件实际上是通过 HTTP 从远程服务器拉入的,由于它们跨越文件夹和许多文件,所以我将不得不爬一点来获取其中的一些。
我希望得到一些输入,什么是最好的工具和方法可以以“Ruby 方式”完成此任务,并抽象出其中的一些内容。否则,我可能会像在 Perl 或我以前采用的其他此类方法中那样处理它。
我正在考虑使用OpenURI 打开每个网址,然后如果输入是 HTML,则收集要抓取的链接,否则处理数据。我每次都会使用String.scan 将文件适当地分解为一个多维数组,根据数据提供者建立的格式解析每个组件。完成后,将数据推送到数据库中。继续下一个输入文件/uri。冲洗并重复。
我想我一定遗漏了一些库,那些有更多经验的人会使用这些库来显着清理/加快这个过程,并使脚本更加灵活,以便在其他数据集上重用。
此外,我将绘制和可视化这些数据以及生成报告,所以也许也应该考虑这一点。
关于可能是更好的方法或库的任何输入?
【问题讨论】:
-
您可以使用“#### ## ##”.split(/\s+/) 之类的内容拆分行,并且您可能希望活动记录来执行数据库插入
-
好点,我想你在 ActiveRecord 上很合适。
标签: ruby parsing web-crawler