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

den*_*lor 7 c# java apache-flex air perl

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

我目前正在使用我编写的Adobe AIR程序来跟踪一页上的链接,并从后续页面中获取一部分数据.这实际上工作正常,对程序员而言,我认为这(或其他语言)提供了一种合理的方法,可以根据具体情况编写.也许有一种特定的语言或库允许程序员很快地完成这项工作,如果是这样,我会有兴趣知道它们是什么.

还有哪些工具可以让非程序员(如客户支持代表或负责数据采集的人)从网页中提取结构化数据而无需进行大量复制和粘贴?

dra*_*tun 11

如果你做一个#1搜索WWW::MechanizepQuery你会看到使用这些Perl的例子很多CPAN模块.

但是因为你提到"非程序员",那么Web::ScraperCPAN模块可能更合适?它更像DSL,因此"非程序员"可能更容易接受.

以下是从Twitter检索推文的文档中的示例:

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";
}
Run Code Online (Sandbox Code Playgroud)