赞
踩
大多数人都知道Git scraping,这是一种网页抓取工具编程技术,你可以定期将数据源快照抓取到Git存储库来跟踪数据源随时间的变化。
如何分析这些收集到的数据是个公认的难题。git-history正是我为解决这个难题而设计的工具。
Git scraping技术回顾
抓取数据到Git存储库的一大优势在于,抓取工具本身非常简单。
这里有一个具体的例子:加州林业与消防局(Cal Fire)在fire.ca.gov/incidents网站上维护了一张火灾地图,地图展示了该州近期的大型火灾情况。
我找到了网站的底层数据:
curl https://www.fire.ca.gov/umbraco/Api/IncidentApi/GetIncidents
然后我搭建了一个简单的抓取工具,每20分钟抓取一份网站数据并提交至Git。到现在,这个工具已经运行了14个月,收集了1559个提交版本。
Git scraping最让我兴奋的是,它可以创建真正独一无二的数据集。很多组织都不会对数据变更内容和位置做详细归档,所以通过抓取他们的网站数据并保存到Git存储库,你会发现自己比他们更了解他们的数据变更历史。
然而,一个巨大的挑战是,如何最有效地分析这些收集到的数据?面对成千上万个版本、大量的JSON和CSV文档,如果只靠肉眼观察不同之处,想必很难挖掘出数据背后的价值。
git-history
git-history就是我提出的新解决方案,它是一个命令行工具。它可以读取一个文件的全部历史版本,并生成一个SQLite数据库,记录文件随时间的变化。然后可以用Datasette分析挖掘这些数据。
下面是我用ca-fires-history存储库运行git-history所生成的一个数据库示例。我在存储库目录中运行以下命令创建了一个SQLite数据库:
- git-history file ca-fires.db incidents.json \
-
- --namespace incident \
-
- --id UniqueId \
-
- --convert 'json.loads(content)["Incidents"]'
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。