完整的WEB站点信息采集方案

本文推荐一篇文章,关于新闻调查公司ProPublica怎样DIY网站信息采集方案。这篇文章是Scraping for Journalism: A Guide for Collecting Data,详细讲解了ProPublica使用哪些开源和免费软件DIY网站信息采集方案,怎样为新闻调查任务采集信息,怎样解决网站采集的难题。

这个案例的采集目标:从美国7家制药公司的网站上采集受赞助医生的姓名和赞助费,建立一个分析和检索系统。根据该文介绍,联邦政府要求所有制药公司到2013年要公开所有这类信息,所以,ProPublica承诺要持续扩大采集范围,将其它公司的信息也汇聚起来。

这个采集案例同我们介绍的其它案例不同,除了要采集普通的HTML文档内容外,还需要采集PDF文档内容,如果PDF是纯图像形式,还需要图像识别程序将图像转换成文字,所以,这是一个专用的完整的解决方案。

该方案用到的第三方工具有:

  • Google Refine:是一个数据清洗工具,还能进行数据格式转换,还能建立数据与其它数据库中的数据的关联关系。这个软件采用web service架构。
  • Firebug:是火狐浏览器Firefox的扩展程序,是一个Web开发工具
  • Ruby:是一种开发语言,当前被很多人用来实现网站采集解决方案
  • Nokogiri:是Ruby程序库,专注于网站信息采集
  • Tesseract:开源的图像识别程序
  • Adobe Acrobat:ProPublica用它将PDF转换成HTML

需要克服的主要技术难题和项目经验有:

  • Google Refine的使用经验:该软件的功能基本上与MetaCorpora软件一致,负责数据清洗和入库,例如,日期格式识别和转换,将一些噪音文字滤除等等。但是,Google Refine据说有个很有吸引力的功能:自动纠正输入错误(deal with typos)。除此之外,Google Refine还具有表格软件(例如,EXCEL)的通常功能。而Facet Browsing功能是普通表格软件所不具有的,配合Web Service架构,提供给用户十分强大和方便的数据分析能力。
  • 采集用Flash制作的网站:ProPublica详细讲解了怎样使用Firebug查看浏览器为Flash下载了哪些文件,然后怎样用Ruby将这些文件采集下来。实际上这种方法也经常被用来抓取AJAX显示的内容,如果没有采用MetaSeeker这种所见即所得的网站采集工具,采集AJAX内容时也需要观察和监听浏览器下载了哪些文件,然后用下载程序分别去下载这些文件。而MetaSeeker完全解放了AJAX内容抓取。
  • 将PDF文档转换成文本文档和表格:据该文介绍,他们尝试了一些PDF转换程序和一些在线服务,好像最大的难度在于转换表格型内容,最后采用了Adobe的软件,准确度最高。
  • 用Ruby和Nokogiri采集HTML网页
  • 图像识别:除了Tesseract以外,还用到了Ruby库RMagick对图像进行处理,因为重点是识别表格型数据,所以,用Ruby程序从图像识别出表格线,按照表格线将表格单元切分出来,然后一个个单元进行识别,最后将识别结果合成表格。

你可能感兴趣的:(信息采集)