1

我是 Web 开发(和一般开发)的新手,我正在构建一个从第三方网站抓取数据的 Rails 应用程序。我正在使用 Nokogiri 解析我感兴趣的特定 html 元素,这些元素存储在数据库中。

但是,我想保存我正在抓取的整个页面的 html 作为备份,以防我改变了我想要的信息类型以及网站删除该网站(或更新它)的想法。

存储归档 html 的最佳做法是什么?我应该将其提取为字符串并将其放入数据库中,将其写入日志或文本文件,还是什么?

编辑:
我应该澄清一下。我每周爬取大约 10K 个网站,如果我重新定义我想要的数据类型,我预计只需要一次性访问备份。

举个例子,如果正在爬取联合国关于国家人口数据的数据,最初是在查看年龄分布,但后来意识到我也想获得性别分布,我想回到我所有的 HTML 档案并提取数据出去。我预计这种情况不会发生太多(可能每月 1-3 次),但当它发生时,我希望在 10K-100K 列表中检索它。这项任务应该只需要几个小时来完成大约 10K 条记录,所以我猜每个网站获取最多需要一秒钟。我不需要任何版本控制功能。希望这可以澄清。

4

2 回答 2

1

我不确定这种情况下的“最佳实践”是什么(它会因项目的具体情况而异),但作为起点,我建议创建一个模型,其中包含 URL 的字符串字段和文本字段对于 HTML 本身,并将页面保存在那里。您可以为 URL 添加唯一性验证器,以确保您不会两次存储相同的 HTML。

然后,您可以选择添加模型方法以从 HTML 文本启动 nokogiri 文档,从而使用 HTML 字符串作为“主”记录(在数据库中)并在需要时动态生成 nokogiri 文档。但是,正如@dave-newton 指出的那样,这在很大程度上取决于您将要使用此 HTML 做什么。

于 2012-11-30T00:46:35.377 回答
0

我强烈建议将其保存到与您正在抓取的数据相同的数据库中的表中。为什么要改变有效的方法?像往常一样保留所有内容,或者将其全部写入单独的数据库以防万一,并保留某种形式或参考以将抓取的数据链接到备份以防万一。

于 2012-11-30T09:07:03.820 回答