-use LWP::Simple qw/get/;
+use Encode qw/encode_utf8/;
+use Web::Scraper qw/scraper/;
my $url = URI->new('https://perl-entrance-tokyo.connpass.com/event/89771/');
+# <div class="group_box" id="feed">
+# というclass属性を持つdivをscrapeする。返り値は配列リファレンス
- process '//p[@class="message"]', 'title[]' => 'TEXT';
- process '//span[@class="icon_comment"]', 'comment[]' => 'TEXT';
+ process '//div[@id="feed"]//div[contains( @class , "thumb36_list" )] ',
+ 'feeds[]' => scraper { # 上記xpath内をさらにscrapeする
+ # class 属性が date の pタグのTEXT部を取得する
+ process '//p[@class="date"]',
+ # class 属性が message の pタグの中にあり、
+ # 最初に出現するaタグのTEXT部を取得する
+ process '//p[@class="message"]/a[1]',
+ # class 属性が message の pタグのTEXT部を取得する
+ process '//p[@class="message"]',
+ # class 属性が icon_comment の spanタグのTEXT部を取得する
+ process '//span[@class="icon_comment"]',
-my $res = $scraper->scrape($html);
-my $number = scalar @{ $res->{title} };
+my $res = $scraper->scrape($url);
-for my $index ( 0 .. $number - 1 ) {
- print encode_utf8 ( $res->{title}->[$index] ), "\n";
- print encode_utf8 ( $res->{comment}->[$index] ), "\n";
+for my $feed ( @{ $res->{feeds} } ) {
+ say encode_utf8( $feed->{time} );
+ say encode_utf8( $feed->{user} );
+ say encode_utf8( $feed->{action} );
+ say encode_utf8( $feed->{comment} ) // ''; #コメントが空の場合がありうる