解析这个HTML页面的正确方法?

时间:2012-05-17 18:57:21

标签: html perl html-parsing

我正在尝试解析HTML页面的某些部分,但我的正则表达式存在问题。 我的代码如下所示:

... Download page using wget and some other stuff ...

$PAGE_REGEXP = "\<div class="col bg_dark clear">";

#Array HTMLLines
@HTMLLines = split(/\n/, $Page);
foreach $ThisOne (@HTMLLines) {
    if ( ($Team) = ($ThisOne =~ /$PAGE_REGEXP/) ) {
        $T{TranslateTeams($Team)}++;
        $LastTeam=TranslateTeams($Team);
    };
};

这是HTML页面:

<div class="col bg_dark clear">
    <div class="col_1 left">15:30</div>
    <div class="col_3_archive left">Team A - Team B</div>
    <div class="col_2_archive left">
            1:4 (0:2)&nbsp;
    </div>

    <div class="col_5 left ">2.4&nbsp;</div>
    <div class="col_5 left ">3.6&nbsp;</div>
    <div class="col_5 left bold">2.9&nbsp;</div>
    <div class="col_8 left">
</div>

<div class="col  clear">
    <div class="col_1 left">15:30</div>
    <div class="col_3_archive left">Team C - Team D</div>
    <div class="col_2_archive left">
            2:3 (1:1)&nbsp;
    </div>

    <div class="col_5 left ">2.7&nbsp;</div>
    <div class="col_5 left ">3.7&nbsp;</div>
    <div class="col_5 left bold">2.5&nbsp;</div>
    <div class="col_8 left">
</div>

我需要解析的信息包括球队名称,结束和半场结果以及例如col_5_left中的数字:2.4,3.6和2.9(对于比赛A队 - B队)。

如果我启动脚本,Perl会给我以下错误: Bareword在parser.pl第11行找到了运算符所在的位置,靠近“”

我不熟悉Perl中的所有现有模块,也许我正在尝试做一些很容易实现的东西 正确的模块。有人可以提供一些提示/提示如何解析这个HTML页面吗?

THX

1 个答案:

答案 0 :(得分:1)

正则表达式的行应该看起来像这样:

$PAGE_REGEXP = '<div class="col bg_dark clear">';