1

我有一个来自我已经做了一段时间的网络抓取项目的大型 json 文件。现在我正在尝试使用 JSON 数据构建一个 Web 前端。不过,我很难找出构建它的最佳方法。

json 文件如下所示:

{ 
   "_id" : { "$oid" : "55d5c85a96cc6212bdd4ca08" }, 
   "name" : "Example", 
   "url" : "http://example.com/blahblah", 
   "ts" : { "$date" : 1073423706824 }
}

我有几个问题:

  1. json 文件将被添加到超时,那么最好的解决方案是定期添加到数据库中,还是将 json 文件保存在云中的某个地方并在需要时从它中提取?

  2. 如果我把它放在数据库中,我怎样才能定期将它添加到数据库中,而不会减慢网站的前端?我知道我可以使用类似的东西json_decode,但我大多只看到带有几行 json 的示例,它可以用于更大的 json 文件吗?

  3. 如果我把它放在数据库中,关系数据库会更快/更高效还是类似于 mongodb?

4

1 回答 1

2

在自己做了很多网络抓取之后,我会推荐以下内容:

  1. 在关系数据库和非关系数据库之间做出决定。如果您的数据随着未知数量的参数不断变化,我建议使用 MongoDB(因为它几乎是 JSON 并且完全无模式,因此很容易添加新方面)。如果您的数据都是相同的格式,那么使用关系数据库是向前迈出的一大步。PostgreSQL 和 MariaDB 是不错的开源选项。

  2. 将您当前的 JSON 数据转换为选择的 DB 格式并插入它。

  3. 开始直接抓取数据库,尽量不要再使用 JSON 文件。

  4. 从数据库中读取您的前端。如果您选择 Python,则可以将flask视为一个不错的选择。

还有一个关于将静态数据存储在数组或数据库中的非常有趣的问题,之前发布了一些关于静态文件与数据库的深入答案。

如果您不考虑静态文件并使用数据库,这里是您 3 个问题的答案;

  1. 只需使用数据库。

  2. 添加到数据库很简单。一旦你设置好了,你的爬虫就可以用相关的驱动程序直接写入它。同样,不需要 JSON 文件。

  3. 这一切都取决于您的数据

于 2013-07-11T22:15:05.000 回答