3

私はこのコードを持っています:

#!/opt/local/bin/perl
use 5.014;
use warnings;
use Web::Scraper;
use Data::Dumper;

my $html = do { local $/; <DATA> };

my $br = scraper {
    process 'div#br-wrap > ul', 'bc[]' => scraper {
        process 'li > a', 'link' => '@href';
    };
};
my $res = $br->scrape( $html );
say Dumper($res);

__DATA__
<html>
<head><title>title</title></head>
<body>
    <div id="content">
        <div id="br-wrap">
            <ul class="br">
                <li><a href="/">Home</a></li>
                <li><a href="/sub/xxx">Sub-xxx</a></li>
                <li><a href="/sub/xxx/cat/name">Sub-Cat</a></li>
                <li><a href="/sub/xxx/item">Sub-Item</a></li>
            </ul>
        </div>
    </div>
</body>
</html>

結果は次のとおりです。

$VAR1 = {
          'bc' => [
                    {
                      'link' => '/'
                    }
                  ]
        };

しかし、私はリンクの配列を探しています...

$VAR1 = {
          'bc' => [
                    {
                      'link' => '/'
                    },
                    {
                      'link' => '/sub/xxx'
                    },
                    {
                      'link' => '/sub/xxx/cat/name'
                    },
                    {
                      'link' => '/sub/xxx/item'
                    }
                  ]
        };

コードのどこにエラーがありますか?

4

1 に答える 1

2
process 'div#br-wrap > ul > li', 'bc[]' => scraper {
    process 'a', 'link' => '@href';
于 2012-04-16T19:17:24.040 に答える