0

curlHTMLタグのコンテンツを取得するにはどうすればよいですか? 次のスクリプトでは、h1コンテンツ などを取得します。

#!/usr/bin/perl  

use strict;  
use warnings;  

my $page = `curl www.yahoo.com`;  
print "Page: \n";  
sleep(5);  
#print "$page \n";  
if ($page =~ m/<h1\s*>(.*)<\/h1\s*>/ig){  
        print "$1 \n";  
} 

試合は1試合だけ。すべての一致を取得するにはどうすればよいですか?

4

3 に答える 3

2

HTML を正規表現で解析するのは罪です。幸いなことに、多くのパーサーが横たわっています。私は特に Mojo スイートが好きです。

use strict; use warnings;
use feature 'say';
use Mojo;

my $ua  = Mojo::UserAgent->new(max_redirects => 5);  # redirects defaults to zero
for my $h3 ($ua->get('www.stackoverflow.com')->res->dom('h3')->each) { # use CSS selectors
  say $h3->all_text;
}
于 2013-08-18T20:00:40.550 に答える