ようは
- links:
- title: タイトル1
url: http://url.1
- title: タイトル2
url: http://url.2
- title: タイトル3
url: http://url.3
というようなデータ構造を作りたい。 この場合、あるWebページにリンクがたくさんあって、そこからタイトルとURLをスクレイピングしてハッシュにし、それを一つの配列に入れるというもの。 「Web::Scraper プレゼン@YAPC::EU: blog.bulknews.net」のプレゼン資料に例が載ってた。 processの中にもう一つscraperを走らせればよいみたい。
追記
miyagawaさんにはてブでコメントいただきました。
その後のスライドにあるけど、単に "links[]" => { title => 'TEXT', link => '@href' } でもいい
とのことです!
#!/usr/bin/perl
use strict;
use warnings;
use URI;
use Web::Scraper;
my $links = scraper {
process "td.tcell",
'links[]' => scraper{
process 'a',
'title' => 'TEXT', 'url' => '@href';
};
};
my $res = $links->scrape( URI->new("http://jp.sun.com/mashupaward/entry1.html") );

