自从我问如何使用正则表达式解析 html 并受到了一些打击(理所当然),我一直在研究HTML::TreeBuilder、HTML::Parser、HTML::TokeParser和HTML::Elements Perl 模块。
我有这样的 HTML:
<div id="listSubtitlesFilm">
<dt id="a1">
<a href="/45/subtitles-67624.aspx">
.45 (2006)
</a>
</dt>
</div>
我想解析出/45/subtitles-67624.asp
,但更重要的是我想知道如何解析出 div 的内容。
我在上一个问题上得到了这个例子:
while ( my $anchor = $parser->get_tag('a') ) {
if ( my $href = $anchor->get_attr('href') ) {
#http://subscene.com/english/Sit-Down-Shut-Up-First-Season/subtitles-272112.aspx
push @dnldLinks, $1 if $href =~ m!/subtitle-(\d{2,8})\.aspx!;
}
这非常有效,但是当我尝试对其进行一些编辑并在“div”上使用它时,它不起作用。这是我尝试过的代码:
我尝试使用此代码:
while (my $anchor = $p->get_tag("dt")) {
if($stuff = $anchor->get_attr('a1')) {
print $stuff."\n";
}
}