#!/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 "
" >> $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; let "j+=1"; echo "
" >> $tablo; echo " Tableau N°$j : $fic " >> $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 n°URL URL PAGES ASPIREES Ret. CURL DUMP initial
(non utf-8)DUMP utf-8 CONTEXTES CONTEXTES
HTMLNB Occur
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 " $i $nom $i.html $retourcurl - $i-utf8.txt $i-utf8.txt $i-utf8.html $nboccur " >> $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 " $i $nom $i.html $retourcurl $i.txt
($encodage)$i-utf8.txt $i-utf8.txt $i-utf8.html $nboccur $i $nom $i.html $retourcurl Encodage
non détectéEncodage
non détectéEncodage
non détecté- - - " >> $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 " $i $nom $i.html $retourcurl $i.txt
($encodage)$i-utf8.txt $i-utf8.txt $i-utf8.html $nboccur " >> $tablo; fi fi fi # fin curl OK else echo "--- --- 'Curl' n'est pas effectif, on peut rein faire."; echo " $i $nom $i.html $retourcurl Encodage
non détectéEncodage
non détecté- - - " >> $tablo; fi let "i+=1"; echo " "; done echo " $i $nom - $retourcurl - - - - - " >> $tablo; echo "   Fichier DUMP
global
$nbdump fichier(s)Fichier CONTEXTES
global
$nbdump fichier(s) 
" >> $tablo; done echo "" >> $tablo;