Thread Perl, RegExp & HTML (10 answers)
Opened by Equipaas at 2016-11-29 07:59

clms
 2016-12-13 14:09
#185771 #185771
User since
2010-08-29
373 Artikel
BenutzerIn
[default_avatar]
Jetzt vor Weihnachten habe ich zwar auch wenig Zeit, aber ich kann Dir gerne helfen.

Wie weit bis Du mit dem TreeBuilder schon gekommen? Wo brauchst Du noch Hilfe?
Kannst Du Deinen HTML-Input einlesen und bekommst die gewünschte Tree-Struktur? Oder gibt das schon Probleme?
(Zum Überprüfen kannst Du Dir $tree->as_HTML anschauen. Hat das ausreichend Ähnlichkeit mit Deinem Input? Sind alle benötigten Informationen noch enthalten?)

Im zweiten Schritt musst Du dann die benötigten Informationen aus dem HTML-Tree ziehen. Hier ist $tree->look_down(...) aus CPAN:HTML::Element Dein Freund.

Wobei: Dein Beispiel sieht nach ziemlich unstrukturierten ineinander geschachtelten Taballen aus, die leider auch nur wenige ID du CLASS-Attribute haben, die die Orientierung erleichtern.
Da könnte man als Zwischenschritt erstmal aufräumen, z.B. alle komplett leeren Tabellen entfernen und die Tabellenzellen mit width="0%". Folgender ungetesteter Code könnte das schaffen:
Code (perl): (dl )
1
2
3
4
5
6
foreach my $tab ($tree->look_down(_tag => "table")) { # alle Tabellen
    next if $tab->as_text; # Inhalt? => weiter
    $tab->delete;  # kein Text => löschen
}
# alle <td width="0%" ...> löschen
$_->delete foreach $tree->look_down(_tag => "td", width => "0%");

Danach prüf zum Debuggen einmal mit print ... $tree->as_HTML, ob noch alles stimmt.

View full thread Perl, RegExp & HTML