apache-flex 从一堆网页中以编程方式提取结构化数据的最简单方法是什么?

tvmytwxo  于 2022-11-01  发布在  Apache
关注(0)|答案(6)|浏览(132)

从一堆网页中以编程方式提取结构化数据的最简单方法是什么?
我目前正在使用我编写的一个AdobeAIR程序来跟踪一个页面上的链接,并从后续页面中获取一部分数据。(或其他语言)提供了一种合理的方法,可以在个案的基础上编写。也许有一种特定的语言或库可以让程序员非常快速地完成这一任务,如果是这样的话,我很想知道它们是什么。
还有什么工具可以让非程序员,比如客户支持代表或负责数据采集的人,从网页中提取结构化数据,而不需要进行大量的复制和粘贴?

nlejzf6q

nlejzf6q1#

如果您在Stackoverflow上搜索WWW::Mechanize & pQuery,您将看到许多使用这些Perl CPAN模块的示例。
然而,因为你提到了“非程序员”,那么也许Web::Scraper CPAN模块可能更合适?它更像DSL,所以可能更容易为“非程序员”拿起。
以下是从Twitter检索tweet的文档示例:

use URI;
use Web::Scraper;

my $tweets = scraper {
    process "li.status", "tweets[]" => scraper {
        process ".entry-content",    body => 'TEXT';
        process ".entry-date",       when => 'TEXT';
        process 'a[rel="bookmark"]', link => '@href';
    };
};

my $res = $tweets->scrape( URI->new("http://twitter.com/miyagawa") );

for my $tweet (@{$res->{tweets}}) {
    print "$tweet->{body} $tweet->{when} (link: $tweet->{link})\n";
}
0h4hbjxa

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编写,非常英语)。这至少比“适当的编程”要容易...

2skhul33

2skhul333#

还有Sprog,它允许你以图形方式从部件中构建过程(获取URL -〉处理HTML表-〉写入文件),你可以在过程的任何阶段放入Perl代码,或者编写自己的部件供非程序员使用。它看起来有点过时,但仍然工作得很好。

41ik7eoe

41ik7eoe4#

我将Ruby与hpricotwatir结合使用,可以非常高效地完成工作

vddsk6oq

vddsk6oq5#

如果你不介意它接管你的计算机,并且你碰巧需要javasript支持,WatiN是一个相当不错的浏览工具。它是用C#编写的,在过去对我来说非常可靠,提供了一个很好的浏览器独立的 Package 器来运行和从页面中获取文本。

l0oc07j2

l0oc07j26#

商业工具是可行的答案吗?如果是的话,看看http://screen-scraper.com/,它是超级容易安装和使用刮网站。他们有免费的版本,实际上是相当完整的。不,我不隶属于该公司:)

相关问题