Perl从HTML表中解析链接 [英] Perl parse links from HTML Table

查看:89
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆