Jac*_*ack 13 html perl html-parsing
我正在尝试使用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>
Run Code Online (Sandbox Code Playgroud)
Grr*_*rrr 18
像这样的东西,快速简单:
#! /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++;
}
Run Code Online (Sandbox Code Playgroud)