Я пытаюсь обработать серию веб-страниц, которые содержат необходимую мне информацию во вложенной серии тегов.К счастью, они пометили нужные мне теги полями id.У меня было несколько вопросов о стековом потоке, похожих на мои, но я не смог получить примеры, приведенные в них, для решения моей проблемы.Я использую HTML :: TokeParser :: Simple для моего примера кода, так как это то, что все остальные примеры используются на этом сайте.Вот пример кода:
#!/usr/bin/perl
use strict; use warnings;
use HTML::TokeParser::Simple;
my $p = HTML::TokeParser::Simple->new(handle => \*DATA);
while (my $tag = $p->get_tag('div')) {
my $id = $tag->get_attr('id');
next unless defined($id) and $id eq 'rank';
my $rank = $p->get_text;
print "Rank is:$rank.hhhh.jjjj.kkkk.llll\n";
}
__DATA__
<body class="png_bg" style="background: #0A0A0A none !important;">
<div >
<div class="left">
<h2>Bob Smith</h2>
</div>
<div id="ranks" class="right">
<div id="rank"><strong>Rank:</strong> 1 of 51</div>
<div id="div-rank"><strong>Overall Rank:</strong> 1 of 1918</div>
</div>
<div class="clear"></div>
Вывод программы:
=> ./test.pl
Rank is:.hhhh.jjjj.kkkk.llll
В идеальном мире я пытаюсь получить текст, следующий за идентификаторами div:"rank" и "div-rank" в отдельных переменных.
По какой-то причине это единственная информация, хранящаяся внутри тегов на этих веб-страницах, все остальное хранится в таблицах, которые я смог получитьгораздо прощеОднако информация о ранжировании, содержащаяся в тегах, важна для моего проекта.
Что мне здесь не хватает?Почему здесь значение $ rank пусто?
Заранее спасибо!