从一堆网页中以编程方式提取结构化数据的最简单方法是什么?
我目前正在使用我编写的一个AdobeAIR程序来跟踪一个页面上的链接,并从后续页面中获取一部分数据。(或其他语言)提供了一种合理的方法,可以在个案的基础上编写。也许有一种特定的语言或库可以让程序员非常快速地完成这一任务,如果是这样的话,我很想知道它们是什么。
还有什么工具可以让非程序员,比如客户支持代表或负责数据采集的人,从网页中提取结构化数据,而不需要进行大量的复制和粘贴?
从一堆网页中以编程方式提取结构化数据的最简单方法是什么?
我目前正在使用我编写的一个AdobeAIR程序来跟踪一个页面上的链接,并从后续页面中获取一部分数据。(或其他语言)提供了一种合理的方法,可以在个案的基础上编写。也许有一种特定的语言或库可以让程序员非常快速地完成这一任务,如果是这样的话,我很想知道它们是什么。
还有什么工具可以让非程序员,比如客户支持代表或负责数据采集的人,从网页中提取结构化数据,而不需要进行大量的复制和粘贴?
6条答案
按热度按时间nlejzf6q1#
如果您在Stackoverflow上搜索
WWW::Mechanize
&pQuery
,您将看到许多使用这些Perl CPAN模块的示例。然而,因为你提到了“非程序员”,那么也许
Web::Scraper
CPAN模块可能更合适?它更像DSL,所以可能更容易为“非程序员”拿起。以下是从Twitter检索tweet的文档示例:
0h4hbjxa2#
我发现YQL对于这类事情是非常强大和有用的。你可以从互联网上选择任何网页,它会使它有效,然后允许你使用XPATH来查询它的部分。你可以将它输出为XML或JSON,准备加载到另一个脚本/应用程序中。
我在这里写下了我的第一个实验:
http://www.kelvinluck.com/2009/02/data-scraping-with-yql-and-jquery/
从那时起,YQL变得更加强大,增加了EXECUTE关键字,允许您在javascript中编写自己的逻辑,并在将数据返回给您之前在Yahoo!s服务器上运行此逻辑。
关于YQL的更详细的文章是here。
你可以为YQL创建一个数据表来获取你要获取的基本信息,然后负责数据获取的人可以针对该表编写非常简单的查询(用DSL编写,非常英语)。这至少比“适当的编程”要容易...
2skhul333#
还有Sprog,它允许你以图形方式从部件中构建过程(获取URL -〉处理HTML表-〉写入文件),你可以在过程的任何阶段放入Perl代码,或者编写自己的部件供非程序员使用。它看起来有点过时,但仍然工作得很好。
41ik7eoe4#
我将Ruby与hpricot和watir结合使用,可以非常高效地完成工作
vddsk6oq5#
如果你不介意它接管你的计算机,并且你碰巧需要javasript支持,WatiN是一个相当不错的浏览工具。它是用C#编写的,在过去对我来说非常可靠,提供了一个很好的浏览器独立的 Package 器来运行和从页面中获取文本。
l0oc07j26#
商业工具是可行的答案吗?如果是的话,看看http://screen-scraper.com/,它是超级容易安装和使用刮网站。他们有免费的版本,实际上是相当完整的。不,我不隶属于该公司:)