Perl从HTML表中解析链接 [英] Perl parse links from HTML Table
本文介绍了Perl从HTML表中解析链接的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我试图从HTML中获取表格的链接。通过使用 HTML :: TableExtract ,我可以解析表格并获取文本(即能力,下例中的异常)但无法获得涉及表格的链接。例如,
< table id =AlphabetTable>
< tr>
< td>
< a href =/ cate / A / Ability>能力< / a> < span class =count> 2650< / span>
< / td>
< td>
< a href =/ cate / A / Abnormal>异常< / a> < span class =count> 26< / span>
< / td>
< / table>
有没有办法使用HTML :: TableExtract获取链接?或者可能在这种情况下使用的其他模块。谢谢 $ b
部分代码:
得到($链路> URL());$ te-> parse($ mech-> content);
foreach $ ts($ te-> tables){
foreach $ row($ ts-> rows){
print @ $ row [0]; #it仅打印文本部分
#但我想要它的链接
}
}
解决方案
HTML :: LinkExtor ,传递提取表格文本到其解析方法。
my $ le = HTML :: LinkExtor-> new();
$ b foreach $ ts($ te-> tables){
foreach $ row($ ts-> rows){
$ le-> parse($ row- > [0]);
为我的$ link_tag($ le->链接){
my($ tag,%links)= @ $ link_tag;
#next如果$ tag ne'a'; #排除其他种类的链接?
为值链接打印;
}
}
}
I'm trying to get links from table in HTML. By using HTML::TableExtract, I'm able to parse table and get text (i.e. Ability, Abnormal in below example) but cannot get link that involves in the table. For example,
<table id="AlphabetTable">
<tr>
<td>
<a href="/cate/A/Ability">Ability</a> <span class="count">2650</span>
</td>
<td>
<a href="/cate/A/Abnormal">Abnormal</a> <span class="count">26</span>
</td>
</table>
Is there a way to get link using HTML::TableExtract ? or other module that could possibly use in this situation. Thanks
part of my code:
$mech->get($link->url());
$te->parse($mech->content);
foreach $ts ($te->tables){
foreach $row ($ts->rows){
print @$row[0]; #it only prints text part
#but I want its link
}
}
解决方案
HTML::LinkExtor, passing the extracted table text to its parse method.
my $le = HTML::LinkExtor->new();
foreach $ts ($te->tables){
foreach $row ($ts->rows){
$le->parse($row->[0]);
for my $link_tag ( $le->links ) {
my ($tag, %links) = @$link_tag;
# next if $tag ne 'a'; # exclude other kinds of links?
print for values %links;
}
}
}
这篇关于Perl从HTML表中解析链接的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文