#!/bin/bash #--------------------------------Input------------------------------- #echo "Donnez le nom du repertoire contenant les fichiers des URLs :"; # read REP; REP="../URLS"; #REP="../TEST"; #echo "Donnez le nom du fichier HTML ou stocker les infos:"; # read tablo; tablo="../TABLEAUX/tableau.html"; #echo "Donnez le motif recherche sur les pages originales:"; # read motif; motif="aimer|爱|喜欢"; # ----------------------Creation du fichier HTML et infos essentielles-------------------- echo "tableaux de liens" > $tablo; echo " " >> $tablo; echo "" >> $tablo; echo "" >> $tablo; echo "
" >> $tablo; echo "

Les TABLEAUX de donnees

" >> $tablo; #--------------------------------------Script principal------------------------------------ # Variable 'j' pour compter les fichiers d'URLs j=1; # Boucle pour parcourir le repertoire fichier par fichier for fic in `ls $REP` do mkdir -p ../CONTEXTES/$j; mkdir -p ../DUMP-TEXT/$j; mkdir -p ../PAGES-ASPIREES/$j; echo "" >> $tablo; echo "" >> $tablo; nbdump=0; #---------------------------------------------------------------- # Variable 'i' pour compter les URLs (les lines) dans un fichier i=1; # Bouche pour parcourire le fichier line par line for nom in `cat $REP/$fic` do echo " " echo "<<< <<< Traitement de l'URL $i du FICHIER $j : $fic >>> >>>"; # Aspiration de la page wed curl -o ../PAGES-ASPIREES/$j/$i.html "$nom"; # Recuperer l'etat de curl retourcurl=$?; # Detection des 'Bad Request' contenupageaspiree=$(egrep -i -o "(400 )?Bad request|Moved Permanently|s interdit|Not Acceptable" ../PAGES-ASPIREES/$j/$i.html | sort -u); #------------------------------------------------------------ if [[ $contenupageaspiree != "" ]] then retourcurl="$retourcurl
BAD
"; echo "--- --- 'Curl' n'est pas bien"; fi #------------------------------------------------------------ # Si l'aspiration est ok if [[ $retourcurl == 0 ]] then echo "--- --- Retour curl : 0" # On detecte l'encodage encodage=$(file -i ../PAGES-ASPIREES/$j/$i.html | cut -d= -f2); echo "--- --- Encodage initial : $encodage"; #--------------------------------------------------------- # Si l'encodage est ut8, on lance directement les traitements lynx et egrep if [[ $encodage == "utf-8" ]] then echo "--- --- Encodage initial est utf-8, on traite directement"; lynx -dump -nolist -display_charset=$encodage ../PAGES-ASPIREES/$j/$i.html > ../DUMP-TEXT/$j/$i-utf8.txt; # Pour bien executer 'minigrepmultilingue.pl', il faut executer d'abord 'sudo perl -MCPAN -e 'install Unicode::String' dans la console perl ../minigrepmultilingue-html/minigrepmultilingue.pl "UTF-8" ../DUMP-TEXT/$j/$i-utf8.txt ../minigrepmultilingue-html/motif-regexp.txt; mv resultat-extraction.html ../CONTEXTES/$j/$i-utf8.html; egrep -i "\b$motif\b" ../DUMP-TEXT/$j/$i-utf8.txt > ../CONTEXTES/$j/$i-utf8.txt; nboccur=0; nboccur=$(egrep -o -i "\b$motif\b" ../DUMP-TEXT/$j/$i-utf8.txt | wc -l ); echo "--- --- Nombre d'occurrences du motif '$motif' dans le fichier '$i-utf8.txt': $nboccur"; cat ../CONTEXTES/$j/$i-utf8.txt >> ../FICHIERGLOBAUX/CONTEXTES-GLOBAUX_$j.txt; cat ../DUMP-TEXT/$j/$i-utf8.txt >> ../FICHIERGLOBAUX/DUMP-GLOBAUX_$j.txt; echo "" >> $tablo; let "nbdump+=1"; #--------------------------------------------------------- # Sinon, il faut verifier si l'encodage est connu de iconv else echo "--- --- Encodage initial n'est pas utf-8, on verifie si l'encodage est connu par 'iconv'" VERIFENCODAGEDANSICONV=$(iconv -l | egrep -io $encodage | sort -u); #------------------------------------------------------ # Si l'encodage est connu de iconv, on lance les traitements... if [[ $VERIFENCODAGEDANSICONV != "" ]] then echo "--- --- Encodage est connu par 'iconv', on la transforme en utf-8 et lance le traitement."; lynx -dump -nolist -display_charset=$encodage ../PAGES-ASPIREES/$j/$i.html > ../DUMP-TEXT/$j/$i.txt; iconv -f $encodage -t utf-8 ../DUMP-TEXT/$j/$i.txt > ../DUMP-TEXT/$j/$i-utf8.txt perl ../minigrepmultilingue-html/minigrepmultilingue.pl "UTF-8" ../DUMP-TEXT/$j/$i-utf8.txt ../minigrepmultilingue-html/motif-regexp.txt; mv resultat-extraction.html ../CONTEXTES/$j/$i-utf8.html; egrep -i "\b$motif\b" ../DUMP-TEXT/$j/$i-utf8.txt > ../CONTEXTES/$j/$i-utf8.txt; nboccur=0; nboccur=$(egrep -o -i "\b$motif\b" ../DUMP-TEXT/$j/$i-utf8.txt | wc -l ); echo "--- --- Nombre d'occurrences du motif '$motif' dans le fichier '$i-utf8.txt': $nboccur"; cat ../CONTEXTES/$j/$i-utf8.txt >> ../FICHIERGLOBAUX/CONTEXTES-GLOBAUX_$j.txt; cat ../DUMP-TEXT/$j/$i-utf8.txt >> ../FICHIERGLOBAUX/DUMP-GLOBAUX_$j.txt; echo "" >> $tablo; let "nbdump+=1"; #------------------------------------------------------- # Encodage n'est pas connu de iconv, on cherche un charset concernant l'encodage dans la page aspiree else echo "--- --- Encodage n'est pas connu par 'iconv', on cherche le charset indiquant l'encodage"; #---------------------------------------------------- if egrep -i "" >> $tablo; #------------------------------------------------- # Le charset extrait est connu de iconv, on lynx et on dump else echo "--- --- Le charset est connu par 'iconv', on la transforme en utf-8 et lance le traitement"; lynx -dump -nolist -display_charset=$encodage ../PAGES-ASPIREES/$j/$i.html > ../DUMP-TEXT/$j/$i.txt; iconv -f $encodage -t utf-8 ../DUMP-TEXT/$j/$i.txt > ../DUMP-TEXT/$j/$i-utf8.txt perl ../minigrepmultilingue-html/minigrepmultilingue.pl "UTF-8" ../DUMP-TEXT/$j/$i-utf8.txt ../minigrepmultilingue-html/motif-regexp.txt; mv resultat-extraction.html ../CONTEXTES/$j/$i-utf8.html; egrep -i "\b$motif\b" ../DUMP-TEXT/$j/$i-utf8.txt > ../CONTEXTES/$j/$i-utf8.txt; nboccur=0; nboccur=$(egrep -o -i "\b$motif\b" ../DUMP-TEXT/$j/$i-utf8.txt | wc -l ); echo "--- --- Nombre d'occurrences du motif '$motif' dans le fichier '$i-utf8.txt': $nboccur"; cat ../CONTEXTES/$j/$i-utf8.txt >> ../FICHIERGLOBAUX/CONTEXTES-GLOBAUX_$j.txt; cat ../DUMP-TEXT/$j/$i-utf8.txt >> ../FICHIERGLOBAUX/DUMP-GLOBAUX_$j.txt; echo "" >> $tablo; let "nbdump+=1"; fi else echo "--- --- Pas de charset trouve, on ne fait rien pour le DUMP"; echo "" >> $tablo; fi fi fi # fin curl OK else echo "--- --- 'Curl' n'est pas effectif, on peut rein faire."; echo "" >> $tablo; fi let "i+=1"; echo " "; done echo "" >> $tablo; echo "
Tableau N°$j : $fic
n°URLURLPAGES ASPIREESRet. CURLDUMP initial
(non utf-8)
DUMP utf-8CONTEXTESCONTEXTES
HTML
NB Occur
$i$nom$i.html$retourcurl - $i-utf8.txt$i-utf8.txt$i-utf8.html$nboccur
$i$nom$i.html$retourcurl$i.txt
($encodage)
$i-utf8.txt$i-utf8.txt$i-utf8.html$nboccur
$i$nom$i.html$retourcurlEncodage
non détecté
Encodage
non détecté
Encodage
non détecté
 -  -  - 
$i$nom$i.html$retourcurl$i.txt
($encodage)
$i-utf8.txt$i-utf8.txt$i-utf8.html$nboccur
$i$nom$i.html$retourcurlEncodage
non détecté
Encodage
non détecté
 -  -  - 
$i$nom - $retourcurl -  -  -  -  - 
 Fichier DUMP
global

$nbdump fichier(s)
Fichier CONTEXTES
global

$nbdump fichier(s)
 
" >> $tablo; let "j+=1"; echo "


" >> $tablo; done echo "" >> $tablo;