怎样设计网站信息采集方案
2011-01-23 18:13
246 查看
前面大部分博文是关于怎样用MetaSeeker完成网站信息采集任务,本文推荐一篇文章,关于新闻调查公司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的使用经验:该软件的功能基本上与GooSeeker发 布的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程序从图像识别出表格线,按照表格线将表格单元切分出来,然后一个个单元进行识别,最后将识别结果合成表格。
这个案例的采集目标:从美国7家制药公司的网站上采集受赞助医生的姓名和赞助费,建立一个分析和检索系统。根据该文介绍,联邦政府要求所有制药公司到2013年要公开所有这类信息,所以,ProPublica承诺要持续扩大采集范围,将其它公司的信息也汇聚起来。
这个采集案例同我们介绍的其它案例不同,除了要采集普通的HTML文档内容外,还需要采集PDF文档内容,如果PDF是纯图像形式,还需要图像识别程序将图像转换成文字,所以,这是一个专用的完整的解决方案。
该方案用到的第三方工具有:
Google Refine:是一个数据清洗工具,还能进行数据格式转换,还能建立数据与其它数据库中的数据的关联关系。这个软件采用web service架构。
Firebug:是火狐浏览器Firefox的扩展程序,是一个Web开发工具
Ruby:是一种开发语言,当前被很多人用来实现网站采集解决方案
Nokogiri:是Ruby程序库,专注于网站信息采集
Tesseract:开源的图像识别程序
Adobe Acrobat:ProPublica用它将PDF转换成HTML
需要克服的主要技术难题和项目经验有:
Google Refine的使用经验:该软件的功能基本上与GooSeeker发 布的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程序从图像识别出表格线,按照表格线将表格单元切分出来,然后一个个单元进行识别,最后将识别结果合成表格。
相关文章推荐
- 网站信息采集系统数据库结构设计及sql代码
- PM2.5+温湿度采集+Wifi上网模块设计方案
- 网站实时信息采集和统计graphite
- 信息发布类网站后台界面设计一点思考(整体布局)
- 【转自eguid大神】实时监控、直播流、流媒体、视频网站开发方案设计简要
- 基于Java的大型网站设计方案
- 【转自eguid大神】实时监控、直播流、流媒体、视频网站开发方案设计简要
- 网页设计课程之《”信息中心”网站的搭建》-心得分享(三)
- 简单的网站架构设计方案 推荐
- Web行业网站的快捷设计与开发技术方案比较
- 信息分类能给网站设计带来巨大好处
- 怎样才能设计一个“易用性”好的网站?
- 信息发布类网站后台界面设计一点思考(列表和操作按钮)
- 大型web2.0互动网站设计方案
- 实时监控、直播流、流媒体、视频网站开发方案设计简要
- 网络的四层架构与网站的数据库的用户信息表的设计
- 网站扫描与用户信息绑定方案
- 通用网络信息采集器(爬虫)设计方案
- 可扩展、高可用、负载均衡网站架构设计方案
- 可扩展、高可用、负载均衡网站架构设计方案