2012-09-04 37 views
0

我正在寻找刮掉许多不同的地方政府网站的公共数据。这些数据不是以任何标准格式(XML,RSS等)提供的,必须从HTML中删除。我需要抓取这些数据并将其存储在数据库中供将来参考。理想情况下,抓取例程将循环运行,并只将新记录存储在数据库中。应该有一种方法可以让我在每个网站上轻松地检测旧版本中的新记录。从多个不同的网站屏幕抓取数据的最佳方法

我的大问题是:什么是最好的方法来完成这个?我听说过一些使用YQL。我也知道一些编程语言也使解析HTML数据变得更容易。我是一位具有几种不同语言知识的开发人员,并且希望确保我选择适当的语言和方法来开发这个功能,因此很容易维护。随着未来网站的变化,需要更新抓取例程/代码/逻辑,所以重要的是这很容易。

有什么建议吗?

回答

0

我会使用Perl模块WWW::Mechanize(网络自动化)和HTML::TokeParser(HTML解析)。否则,我会使用Python的Mechanize模块(网页自动化)和BeautifulSoup模块(HTML解析)。

0

我同意David关于perl和python。红宝石也有机械化,非常适合刮脸。我唯一会远离的是php,因为它缺乏刮擦库和笨拙的正则表达式函数。就YQL而言,这对于某些事情是有好处的,但是对于一些事情来说,它实际上只是增加了一层可能出错的东西(在我看来)。

0

那么,我会用我自己的刮谱库或相应的command line tool

它可以使用可刮大部分的网页没有任何实际的编程,从不同的网站类似的数据规范化为规范格式和验证,没有任何页面的模板已更改其布局...

命令行工具不支持通过数据库,有你需要的东西编程...

(在另一方面Webharvest说,它支持的数据库,但它没有模板)