$out_file = "output.xls"; open (OUT, ">$out_file") or die "Can't open $out_file: $!\n"; print OUT "TITOLO\tDI\tCON\tGENERE\tPAESE\tANNO"; opendir(DIR,"."); @a = readdir(DIR); closedir(DIR); for (@a) { if ($_ =~ /htm/) { $in_file = "$_"; open (IN, "<$in_file") or die "Can't open $in_file: $!\n"; $count = 1; while ( $line =) { #if ($count > 780 && $count < 1290){ if ($count > 200 && $count < 1500){ if ($line =~ /(.*?)<\/b>/) { # TITOLO print OUT "\n$1\t$2"; $flagcon = "\t"; } if ($line =~ /tppabs="http:\/\/www\.asp\?id=(.*?)"\sclass="linkBLU">(.*?)<\/b>/) { # TITOLO print OUT "\n$1\t$2"; $flagcon = "\t"; } if ( $line =~ /^\t{8}di\s(.*?)
/ ) { # DI $di = $1; $di =~ s///g; $di =~ s/<\/a>//g; $di =~ s/\.$//g; print OUT "\t$di"; } if ( $line =~ /^\t{9}Con\s(.*?)
/ ) { # CON $con = $1; $con =~ s///g; $con =~ s/<\/a>//g; print OUT "\t$con"; $flagcon = "" } # GENERE, PAESE, ANNO #if ( ($next =~ /YES/) && ($line =~ /(.*?),\s(.*?) (.*?)<\/A>/) ) { if ($line =~ /(.*?),\s(.*?) (.*?)<\/A>/) { $genere = $1; $paese = $2; $anno = $3; $genere =~ s/^\s*/ /; print OUT "$flagcon\t$genere\t$paese\t$anno"; } } $count++; } close IN; } } close OUT;
open (OUT, ">>rec.xls") or die "Can't open $out_file: $!\n"; print OUT "CODICE\tTITOLO\tTITOLO ORIGINALE\tCOLORE\tDURATA\tRECENSIONE\tPATH IMG\n"; for ($i = 35439; $i < 35440 ; ++$i) { system "wget -O tmp.txt http://www.....asp?id=$i"; # open (IN, "tmp$i.txt") or die "Can't open $in_file: $!\n"; open (IN, "tmp.txt") or die "Can't open $in_file: $!\n"; $next = ""; $path = ""; while ( ($line =) && ($next !~ /NO/) ) { if ( $line =~ / (.*?)<\/ti.*?>/ ) { # TITOLO $titolo = $1; $titolo =~ s/\s\(.*?\)//; print OUT "\n$i\t$titolo"; $titori = "\t"; } if ( $line =~ /\((.*?)\)<\/b>/ ) { # TITOLO ORIGINALE $orig = $1; print OUT "\t$orig"; $titori = ""; } if ( $line =~ /,\s(.*?),\s(.*?)\smin\./ ) { # COLORE/BW, MIN print OUT "$titori\t$1\t$2"; } if ( $line =~ /(filmclub\/.*?\/.*?\/.*?\/imm.jpg)"/ ) { # IMG $path = $1; } if ( $next =~ /YES/ ) { # RECENSIONE $next = "NO"; #ultima $line =~ s/<.*?>//g; $line =~ s/\n//g; print OUT "\t$line\t$path"; } if ( $line =~ / / ) { $next = "YES"; } } close IN; } close OUT;
open (OUT, ">>file.it.xls") or die "Can't open $out_file: $!\n"; print OUT "Codice\tTitolo Film\tAnno\tTitolo originale\tAltri titoli\tDurata\tVietato\tOrigine\tColore\tGenere\tFormato\tTratto da\tProduzione\tDistribuzione\tRegia\tAttori\tSoggetto\tSceneggiatura\tFotografia\tMusiche\tMontaggio\tScenografia\tEffetti\tCostumi\tTrama\tCritica\tNote"; # USATA PER DOWNLOAD GET use LWP::Simple; $|=1; #45171 for ($i = 1; $i <45172; ++$i) { # INIZIALIZZAZIONE $Titolo_Film= ""; $Anno= ""; $Titolo_originale= ""; $Altri_titoli= ""; $Durata= ""; $Vietato= ""; $Origine= ""; $Colore= ""; $Genere= ""; $Formato= ""; $Tratto_da= ""; $Produzione= ""; $Distribuzione= ""; $Regia= ""; $Attori= ""; $Soggetto= ""; $Sceneggiatura= ""; $Fotografia= ""; $Musiche= ""; $Montaggio= ""; $Scenografia= ""; $Effetti= ""; $Costumi= ""; $Trama= ""; @tmpTrama= ""; $Critica= ""; @tmpCritica =""; $Note= ""; @tmpNote=""; # DOWNLOAD PAGINA $tmpfile = get ("http://www.....asp?s=$i"); # PARSERING PAGINA if ($tmpfile =~ /\t{6}.*?Titolo Film.*?(.*?)(.*?)(.*?)(.*?)(.*?)(.*?)(.*?)(.*?)(.*?)(.*?)(.*?)(.*?)(.*?)(.*?)<\/font>/s) {$tmpRegia = $1; while($tmpRegia=~ /(?:(.*?)<\/a>)|(?:(?: ){6}(\w.*?)
)/g) {if ($1) {$Regiat =$1;} else {$Regiat =$2;} $Regiat =~ s/ / /; $Regia = $Regia.", ".$Regiat; } $Regia=~ s/^,\s//; } if ($tmpfile =~ /\t{6}.*?Attori.*?(.*?)<\/font>/s) {$tmpAttori = $1; while($tmpAttori=~ /(?:(.*?)<\/a>)|(?:(?: ){6}(\w.*?)
)/g) {if ($1) {$Attore =$1;} else {$Attore =$2;} $Attore =~ s/ / /; $Attori = $Attori.", ".$Attore; } $Attori=~ s/^,\s//; } if ($tmpfile =~ /\t{6}.*?Soggetto.*?(.*?)<\/font>/s) {$tmpSoggetto = $1; while($tmpSoggetto=~ /(?:(.*?)<\/a>)|(?:(?: ){6}(\w.*?)
)/g) {if ($1) {$Soggettot =$1;} else {$Soggettot =$2;} $Soggettot =~ s/ / /; $Soggetto = $Soggetto.", ".$Soggettot; } $Soggetto=~ s/^,\s//; } if ($tmpfile =~ /\t{6}.*?Sceneggiatura.*?(.*?)<\/font>/s) {$tmpSceneggiatura = $1; while($tmpSceneggiatura=~ /(?:(.*?)<\/a>)|(?:(?: ){6}(\w.*?)
)/g) {if ($1) {$Sceneggiaturat =$1;} else {$Sceneggiaturat =$2;} $Sceneggiaturat =~ s/ / /; $Sceneggiatura = $Sceneggiatura.", ".$Sceneggiaturat; } $Sceneggiatura=~ s/^,\s//; } if ($tmpfile =~ /\t{6}.*?Fotografia.*?(.*?)<\/font>/s) {$tmpFotografia = $1; while($tmpFotografia=~ /(?:(.*?)<\/a>)|(?:(?: ){6}(\w.*?)
)/g) {if ($1) {$Fotografiat =$1;} else {$Fotografiat =$2;} $Fotografiat =~ s/ / /; $Fotografia = $Fotografia.", ".$Fotografiat; } $Fotografia=~ s/^,\s//; } if ($tmpfile =~ /\t{6}.*?Musiche.*?(.*?)<\/font>/s) {$tmpMusiche = $1; while($tmpMusiche=~ /(?:(.*?)<\/a>)|(?:(?: ){6}(\w.*?)
)/g) {if ($1) {$Musichet =$1;} else {$Musichet =$2;} $Musichet =~ s/ / /; $Musiche = $Musiche.", ".$Musichet; } $Musiche=~ s/^,\s//; } if ($tmpfile =~ /\t{6}.*?Montaggio.*?(.*?)<\/font>/s) {$tmpMontaggio = $1; while($tmpMontaggio=~ /(?:(.*?)<\/a>)|(?:(?: ){6}(\w.*?)
)/g) {if ($1) {$Montaggiot =$1;} else {$Montaggiot =$2;} $Montaggiot =~ s/ / /; $Montaggio = $Montaggio.", ".$Montaggiot; } $Montaggio=~ s/^,\s//; } if ($tmpfile =~ /\t{6}.*?Scenografia.*?(.*?)<\/font>/s) {$tmpScenografia = $1; while($tmpScenografia=~ /(?:(.*?)<\/a>)|(?:(?: ){6}(\w.*?)
)/g) {if ($1) {$Scenografiat =$1;} else {$Scenografiat =$2;} $Scenografiat =~ s/ / /; $Scenografia = $Scenografia.", ".$Scenografiat; } $Scenografia=~ s/^,\s//; } if ($tmpfile =~ /\t{6}.*?Effetti.*?(.*?)<\/font>/s) {$tmpEffetti = $1; while($tmpEffetti=~ /(?:(.*?)<\/a>)|(?:(?: ){6}(\w.*?)
)/g) {if ($1) {$Effettit =$1;} else {$Effettit =$2;} $Effettit =~ s/ / /; $Effetti = $Effetti.", ".$Effettit; } $Scenografia=~ s/^,\s//; } if ($tmpfile =~ /\t{6}.*?Costumi.*?(.*?)<\/font>/s) {$tmpCostumi = $1; while($tmpCostumi=~ /(?:(.*?)<\/a>)|(?:(?: ){6}(\w.*?)
)/g) {if ($1) {$Costumit =$1;} else {$Costumit =$2;} $Costumit =~ s/ / /; $Costumi = $Costumi.", ".$Costumit; } $Costumi=~ s/^,\s//; } if ($tmpfile =~ /\t{6}.*?Trama.*?(.*?)\X/s) #mettere un < al posto di X {@tmpTrama = $1; foreach $Tramat (@tmpTrama) { $Tramat=~ s/[^a-zA-Z0-9.,éèòàùì\/!?+\{\}\[\]:;'"()-]/ /g; $Trama=$Trama.", ".$Tramat } $Trama=~ s/^,\s//; } if ($tmpfile =~ /\t{6}.*?Critica.*?(.*?)\X/s) #mettere un < al posto di X {@tmpCritica = $1; foreach $Criticat (@tmpCritica) { $Criticat=~ s/[^a-zA-Z0-9.,éèòàùì\/!?+\{\}\[\]:;'"()-]/ /g; $Critica=$Critica.", ".$Criticat } $Critica=~ s/^,\s//; } if ($tmpfile =~ /\t{6}.*?Note.*?(.*?)\X/s) #mettere un < al posto di X {@tmpNote = $1; foreach $Notet (@tmpNote) { $Notet=~ s/[^a-zA-Z0-9.,éèòàùì\/!?+\{\}\[\]:;'"()-]/ /g; $Note=$Note.", ".$Notet } $Note=~ s/^,\s//; } # CREAZIONE DB EXCEL print "\n$i"; print OUT "\n$i"; print OUT "\t$Titolo_Film"; print OUT "\t$Anno"; print OUT "\t$Titolo_originale"; print OUT "\t$Altri_titoli"; print OUT "\t$Durata"; print OUT "\t$Vietato"; print OUT "\t$Origine"; print OUT "\t$Colore"; print OUT "\t$Genere"; print OUT "\t$Formato"; print OUT "\t$Tratto_da"; print OUT "\t$Produzione"; print OUT "\t$Distribuzione"; print OUT "\t$Regia"; print OUT "\t$Attori"; print OUT "\t$Soggetto"; print OUT "\t$Sceneggiatura"; print OUT "\t$Fotografia"; print OUT "\t$Musiche"; print OUT "\t$Montaggio"; print OUT "\t$Scenografia"; print OUT "\t$Effetti"; print OUT "\t$Costumi"; print OUT "\t$Trama"; print OUT "\t$Critica"; print OUT "\t$Note "; } close OUT;