$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;