加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

在Perl中进行HTML解析

发布时间:2020-12-15 21:22:44 所属栏目:大数据 来源:网络整理
导读:我试图用perl解析以下 HTML结构.我需要选择包含类消息的所有dd元素和一个id. 所有我想要的脚本要循环遍历所有的dd元素,并打印出dd元素的id,但是它需要忽略第一个dd元素,因为它是静态的,不会改变. 它可以与任何perl模块,只要它可以从cpan安装,使我很容易.我没
我试图用perl解析以下 HTML结构.我需要选择包含类消息的所有dd元素和一个id.
所有我想要的脚本要循环遍历所有的dd元素,并打印出dd元素的id,但是它需要忽略第一个dd元素,因为它是静态的,不会改变.

它可以与任何perl模块,只要它可以从cpan安装,使我很容易.我没有太多的Perl和解析html的经验,所以任何指针将是非常有帮助的.

谢谢 :)

HTML结构:

<pre><code>
<html>
<head>
</head>
<body>
 .....other elements
    <div id="messages">
        <div class="header"></div>
        <dl>
            <dd class="message unread mc-friend mc-message">This is just a random message,do not parse</dd>
            <dd id="msg2" class="message unread mc-message">
                Hello
            </div>
            <dd id="msg3" class="message unread mc-message">
                Hello
            </dd>
        </dl>
    </div>
</body>
</html>
</pre></code>

解决方法

这样的事情,快速简单:
#! /usr/bin/perl
use strict;
use warnings;

use Mojo::DOM;

my $html = "Your HTML goes here";

my $dom = Mojo::DOM->new;
$dom->parse($html);
my $skip;
for my $dd ($dom->find('dd[class*="message"]')->each) {
    print $dd->attrs->{id},"n" if $skip++;
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读