在json中存储html的有效方法

问题描述

我使用Python Requests 抓取了数千个URL,并将它们的html内容保存在json文件中,如下所示:

[
        {"url": "https//someurl.com","html": "<strong>Hello World!<\/strong>"
        },{"url": "https//anotherurl.com","html": "<h1>Goodbye World!<\/h1>"
        }
]

我最终得到的文件的重量超过2.3 gb(因为这些是具有大量html内容的实际网页)。

我使用了 htmlmin 库,但并没有太大帮助。

我暂时无法使用数据库。因此,我正在寻找一种更有效地存储这些非常大的字符串的方法,如果可能的话,可以将它们存储在json中。

以后,必须检索html进行处理。

我一直在考虑将每个字典拆分为单独的json文件。我可以为每个文件生成一个随机密钥(存储在json文件中),然后在每个包含{"url": "https//someurl.com","html": "<strong>Hello World!<\/strong>"}的json文件中命名。这样,我可以避免不得不遍历庞大的单个文件来检索正确的html字符串。但这仍然对文件大小没有帮助。

但是,如果我可以将所有内容保存在一个文件中,那就太好了。有想法吗?

解决方法

使用文件

如果您为每个唯一 URL 生成一个唯一 ID,并将 HTML 内容存储在 .zip.gz 文件中,并将唯一 ID 作为文件名会怎样。

在 JSON 文件中,您只需存储指向包含 HTML 内容的文件的 ID。

使用数据库

某些数据库/数据仓库系统(例如 Google's BigQuery)在读取大型数据集方面非常有效。

如果您可以将抓取的输出存储在这样的系统中,即使对于像您这样的大型数据集,在数据中查找某些内容的时间也会大大减少。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...