PDA

Visualizza la versione completa : [PERL] Parser file HTML - tag <div>


Ivanni
27-11-2007, 14:00
Ciao a tutti,
mi sto affacciando da poco alla programmazione in perl ed ho ancora un bel pò di problemi.
Ho un file html e mi serve estrarre l'informazione contenuta all'interno di un tag <div>. In particolare la linea di codice html che devo rintracciare ed elaborare è questa:

-------- codice HTML ----------
<div align="center" class="dataora">
27 11 2007 13.44
</div>
----- continua codice HTML ----


Quello che devo fare è estrarre la data e l'ora. Qualcuno di voi mi sa dare qualche suggerimento?
Ho provato a cercare all'interno del forum qualche 3D simile, ma non mi sembra di aver trovato nulla... :(

MARTEDI
27-11-2007, 14:34
open (HT,"file.html");
$tr=0;
while (<HT>)
{
if ($tr==1)
{
$data=substr($_,0,10);
$ora=substr($_,11,5);
$tr=0;
}
if ($_ =~ /class=\"dataora\"/) {$tr=1}
}
close (HT);

print "data $data, ora $ora\n";

Mich_
27-11-2007, 15:27
Io userei un metodo diverso.
Dapprima caricherei il file in memoria, ad esempio nella variabile $tutto, poi userei la RE:

$tutto =~ /dataora.+\>(.+?)\</ms;
($gg $mm $aa $hh $min) = split($1, /[ \./);
Dove chiaramente le varie variabili sono state precedentemente definite.

Ivanni
27-11-2007, 15:42
Grazie per i consigli che mi state dando, sto testando ora le vostre soluzioni...
In ogni caso, cercando in rete soluzioni alternative ho visto che perl ha a disposizione vari package che potrebbero essermi utili, come HTML::Parser.
Mi chiedevo, poiché successivamente dovrò fare il parser di altri tag, se non fosse meglio utilizzare quello.
Qualcuno mi potrebbe indicare una soluzione che utilizza il package HTML::Parser (o almeno una guida per principianti)?
Sto cercando un pò di informazioni in rete... se riesco a concludere qualcosa di sensato prima che qualcuno mi abbia risposto, posto qui il codice qui! :)

Loading