如何最好地存储每天收集的Web爬网数据以查找更改

时间:2013-01-13 02:03:58

标签: python web-crawler

我每天都在抓取一个网站,以确定哪些产品有库存变化。

如何最好地存储此数据以便在之前的日期之间进行比较?

数据如下所示:

{'name': productname, 'url': "URL to product", "status": "In stock or not", "variants": ['3', '7', '9']}

大约有1000种产品。

我需要每天存储一次所有这些数据,因此我可以检索它并与之前的日期进行比较,以便注意产品是否已经存货/库存。我还需要查看是否已删除/添加变体。

关于如何构建这个问题我很遗憾。我应该使用数据库,几个CSV文件,文本文件吗?

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

这不是特别多的数据,所以pickle应该足够(最简单),除非你特别关注性能(你没有在嵌入式系统上运行python,你呢?)。

要查看是否有任何更改,您需要做的就是保留上次抓取的数据,因此您只需要存储1000个产品。当您检测到更改时,如果您计划执行多次爬网,则可以将其记录到文件或数据库中,或者让系统继续运行时间。

请注意,此方法仅保存所选变量的更改。如果您以后决定要其他变量的更改日志,则无法计算它。

此外,将status值转换为布尔值可能是值得的,如果它只能取两个值。

答案 1 :(得分:0)

在这种情况下,我发现最好将数据存储在文本文件中,以便您可以读取文件以检查数据并在必要时手动编辑。将它存储在数据库中会有点过分。

您可以将其存储在一个CSV文件中,其中包含名称,网址,状态和变体作为字段。在每次运行期间,您都可以阅读CSV文件,查找更改并更新文件。在调试过程之前,您还可以保存文件的先前版本,以便在发生更改时查看更改。