【发布时间】:2015-05-22 11:38:02
【问题描述】:
我正在尝试使用 Perl 制作一个小应用程序,以从 LolKing 获取英雄联盟的召唤师姓名。
HTML 代码有类似的行
<tr data-summonername="MatLife TriHard" class="lb_row_rank_4">
所以我只是用类似的东西
use strict;
use warnings;
use LWP::Simple;
use HTML::Parser;
my $find_links = HTML::Parser->new(
start_h => [
sub {
my ($tag, $attr) = @_;
if ($tag eq 'tr' and exists $attr->{'data-summonername'}) {
print "$attr->{'data-summonername'}\n";
}
},
"tag, attr"
]
);
my $html = get('http://www.lolking.net/leaderboards/#/na/1') or die 'nope';
$find_links->parse($html);
但这没有给我任何东西。即使使用attr=class,它也没有给我任何东西。由于某种原因,我无法获取 tr 元素的类。
使用不带单引号的$attr->{data-summonername} 给了我一些错误,因为我想是连字符。如果我获取 $attr->{href} 它就可以了。
谁能帮帮我?
【问题讨论】:
-
无耻插件:在Windows上可以get the page content using Internet Explorer,然后使用HTML::TableExtract提取你需要的信息。如果您不在 Windows 上,get the page content via Firefox,然后使用
HTML::TableExtract。当然还有PhantomJS。
标签: javascript html perl parsing