Это код, который я хотел бы разобратьКак разобрать html с HTML :: TreeBuilder?
[...]
<div class="item" style="clear:left;">
<div class="icon" style="background-image:url(http://nwn2db.com/assets/builder/icons/40x40/is_acidsplash.png);">
</div>
<h2>Acid Splash</h2>
<p>Caster Level(s): Wizard/Sorcerer 0
<br />Innate Level: 0
<br />School: Conjuration
<br />Descriptor(s): Acid
<br />Component(s): Verbal, Somatic
<br />Range: Medium
<br />Area of Effect/Target: Single
<br />Duration: Instant
<br />Save: None
<br />Spell Resistance: Yes
<p>
You fire a small orb of acid at the target for 1d3 points of acid damage.
</div>
[...]
Это мой алгоритм:
my $text = '';
scan_child($spells);
print $text, "\n";
sub scan_child {
my $element = $_[0];
return if ($element->tag eq 'script' or
$element->tag eq 'a'); # prune!
foreach my $child ($element->content_list) {
if (ref $child) { # it's an element
scan_child($child); # recurse!
} else { # it's a text node!
$child =~ s/(.*)\:/\\item \[$1\]/; #itemize
$text .= $child;
$text .= "\n";
}
}
return;
}
Он получает образец <key> : <value>
и чернослив мусор как <script>
или <a>...</a>
. Я хотел бы улучшить его, чтобы получить заголовок <h2>...</h2>
и весь блок <p>...<p>
, поэтому я могу добавить теги LaTeX.
Любой ключ?
Заранее спасибо.
Возможно, вам следует сделать шаг назад и выяснить, какую информацию вы хотите извлечь из страниц, которые вы очищаете, и как вы хотите их сохранить. Если у вас есть определенная схема или структура данных, было бы полезно добавить ее к вопросу. Если вы просто хотите извлечь весь текст, вы уже хорошо поехали туда. –
Возможно, я до сих пор не понял, какой HTML :: TreeBuilder хранится в узлах. – Daniele