需求

客户是 mit 的一个老师和博士,他的一个项目需要抓取国内政务网站的市长/书记他们的各种言行、会议、考察等各种工作信息,涉及的网站有 200+,客户明确要求使用 postgrepsql 进行存储,并能进行增量更新,还要支持导出为 json 格式的数据。

需求分析及实现

这个需求的难点主要在网站非常多,每个网站都有一套自己的规则需要维护,虽然很多时候规则有些通用的地方,但是还是要对每一个网站进行分析。这是最耗时的部分。

最后采用的是以 scrapy 为基础进行开发,对每一个网站编写一个数据提取配置文件。在实际运行时,根据预定义的网站列表,动态的导入抓取配置提取对应网站的数据,最后存储到数据库中。

整个项目前后大概花了一个月的时间开发完毕,那段时间,天天分析网站的数据的 xpath 结构,真是不想再回忆了。

最后的实现代码结构如下:

网站提取规则如下图所示:

完成时间

2016/1/20 耗时 月 1 个月。