【问题标题】:How to parse HTML which does not have id or class information?如何解析没有 id 或 class 信息的 HTML?
【发布时间】:2013-01-30 02:19:08
【问题描述】:

如果我有表单的 HTML

<ol>
    <li>Cheeses
        <ol>
            <li>Red Leicester</li>
            <li>Cheddar</li>
        </ol>
    <li>Wines
        <ol>
            <li>Burgundy</li>
            <li>Beaujolais</li>
        </ol>
</ol>

我想把它解析成类似的结构

{"Cheeses":["Red Leicester", "Cheddar"], "Wines":["Burgundy", "Beaujolais"]}

有很多关于如何使用 HTML::TreeBuilder 或 Mojo::DOM 等模块来解析 HTML 的“教程”,但它们似乎总是依赖于使用“id=”或“class=”标签。我要解析的 HTML 没有任何 ID 标签或其他属性。我该怎么做?

【问题讨论】:

  • 在 perl 中,我想你可以开始解析 标签的内容。

标签: perl html-parsing


【解决方案1】:

我只有在 Mojo::DOM 方面的经验,诚然,您可能会找到一个更好的模块来将您的 XML 转换为数据结构。如果您使用的是 Mojo::DOM,您可能需要查看 Mojo::DOM 对象底层的树结构:

#!/usr/bin/env perl

use strict;
use warnings;

use Mojo::DOM;
use Data::Dumper;

my $dom = Mojo::DOM->new(<<'END');
<ol>
    <li>Cheeses
        <ol>
            <li>Red Leicester</li>
            <li>Cheddar</li>
        </ol>
    <li>Wines
        <ol>
            <li>Burgundy</li>
            <li>Beaujolais</li>
        </ol>
</ol>
END

print Dumper $dom->tree;

稍微按摩一下,您就可以将其变成您想要的形式。也许有人有一个更直接地从 HTML(可能实际上是 XML)到结构的模块。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-04
    • 1970-01-01
    • 1970-01-01
    • 2014-04-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多