#!/bin/bash echo "Donnez le nom du fichier contenant les liens http : "; read REP; echo "Donnez le nom de fichier html ou stocker ces liens : "; read tablo; echo "Donnez le motif : "; read motif; echo " Tableaux de liens" > $tablo; echo "


" >> $tablo; j=1; for file in `ls $REP` do mkdir -p ../PAGES-ASPIREES/$j; mkdir -p ../DUMP-TEXT/$j; mkdir -p ../CONTEXTES/$j; mkdir -p ../FICHIERGLOBAUX; echo "" >> $tablo; echo "" >> $tablo; i=1; #pour chaque lien dans chaque fichier d'URLS on va aspirer les pages pour les stocker localement. for link in `cat $REP/$file` do curl $link -o ../PAGES-ASPIREES/$j/$i.html; retourcurl=$? #on recupere les erreurs controlcurl=$(egrep -i -o --max-count=1 "Bad request|Service Unavailable|404 Not Found|Not Acceptable|The document has moved|page not found|object moved|Error this page has moved here" ../PAGES-ASPIREES/$j/$i.html | sort -u); if [ "$controlcurl" != "" ] then echo "" >> $tablo; else encodage=$(file -i ../PAGES-ASPIREES/$j/$i.html | cut -f2 -d=); echo $encodage; if [ $encodage = "utf-8" ] then #si l'encodage est de l'UTF-8 on recupere seulement le texte de chaque page avec la commande lynx. lynx -dump -nolist -display_charset=$encodage ../PAGES-ASPIREES/$j/$i.html > ../DUMP-TEXT/$j/$i-utf8.txt; #egrep recupere les motifs qu'on cherche et on les range dans les repertoires Dump-text et Contextes egrep -i "\b$motif\b" ../DUMP-TEXT/$j/$i-utf8.txt > ../CONTEXTES/$j/$i-utf8.txt; # on cherche le nombre d'occurence des motifs dans chaque page nbOccur=??; nbOccur=$(egrep -o -i "\b$motif\b" ../DUMP-TEXT/$j/$i-utf8.txt | wc -l ); egrep -i "\bblague\b|\bblagues\b|\bjoke\b|\bjokes\b" ../CONTEXTES/$j/$i-utf8.txt > ../CONTEXTES/$j/$i-utf8.html ; echo "" >> $tablo; cat ../CONTEXTES/$j/$i-utf8.txt >> ../FICHIERGLOBAUX/CONTEXTES-GLOBAUX_$j.txt; cat ../DUMP-TEXT/$j/$i-utf8.txt >> ../FICHIERGLOBAUX/DUMP-GLOBAUX_$j.txt; let "nbdump+=1"; else #On verifie l'encodage, si ce n'est pas en UTF-8 on le convertit en UTF-8 verif_iconv=`iconv -l |egrep -io $encodage`; if [ "$verif_iconv" != "" ] then 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"; egrep -i "\b$motif\b" ../DUMP-TEXT/$j/$i-utf8.txt > ../CONTEXTES/$j/$i-utf8.txt; nbOccur=??; nbOccur=$(egrep -o -i "\b$motif\b" ../DUMP-TEXT/$j/$i-utf8.txt | wc -l ); egrep -i "\bblague\b|\bblagues\b|\bjoke\b|\bjokes\b" ../CONTEXTES/$j/$i-utf8.txt > ../CONTEXTES/$j/$i-utf8.html; echo "" >> $tablo; cat ../CONTEXTES/$j/$i-utf8.txt >> ../FICHIERGLOBAUX/CONTEXTES-GLOBAUX_$j.txt; cat ../DUMP-TEXT/$j/$i-utf8.txt >> ../FICHIERGLOBAUX/DUMP-GLOBAUX_$j.txt; let "nbdump+=1"; #si iconv n'a pas pu reconnaitre l'encodage de chaque page, on utilise une expression reguliere pour isoler tout ce qui est apres la chaine de caracteres "charset". Ensuite on l'extrait et on verifie si cet encodage est reconnu par iconv pour qu'il puisse le convertir en UTF8. else if egrep -qi ".*charset?=.*" ../PAGES-ASPIREES/$j/$i.html then charset_line=$(egrep -m 1 "charset=.*\"" ../PAGES-ASPIREES/$j/$i.html); charset_line=$(expr "$charset_line" : '.*=\(.*\)\"'); verif_iconv=`iconv -l | egrep -io $charset`; if [ "$verif_iconv" != "" ] then lynx -dump -nolist -display_charset=$charset ../PAGES-ASPIREES/$j/$i.html > ../DUMP-TEXT/$j/$i.txt; iconv -f $charset -t utf-8 "../DUMP-TEXT/$j/$i.txt" > "../DUMP-TEXT/$j/$i-utf8.txt"; egrep -i "\b$motif\b" ../DUMP-TEXT/$j/$i-utf8.txt > ../CONTEXTES/$j/$i-utf8.txt; nbOccur=??; nbOccur=$(egrep -o -i "\b$motif\b" ../DUMP-TEXT/$j/$i-utf8.txt | wc -l ); egrep -i "\bblague\b|\bblagues\b|\bjoke\b|\bjokes\b" ../CONTEXTES/$j/$i-utf8.txt > ../CONTEXTES/$j/$i-utf8.html; echo "" >> $tablo; cat ../CONTEXTES/$j/$i-utf8.txt >> ../FICHIERGLOBAUX/CONTEXTES-GLOBAUX_$j.txt; cat ../DUMP-TEXT/$j/$i-utf8.txt >> ../FICHIERGLOBAUX/DUMP-GLOBAUX_$j.txt; let "nbdump+=1"; let "nbdump+=1"; else lynx -dump -nolist -display_charset=$charset ../PAGES-ASPIREES/$j/$i.html > ../DUMP-TEXT/$j/$i.txt; echo "-" >> $tablo; fi else lynx -dump -nolist -display_charset=$charset ../PAGES-ASPIREES/$j/$i.html > ../DUMP-TEXT/$j/$i.txt; echo "" >> $tablo; fi fi fi fi let "i+=1"; done echo "" >> $tablo; echo "
Tableau n° $j,$(basename $file .txt)
n°URLURLPage aspiréeRetour curlDump-text initialDump-text utf-8Contexte .txtContexte .htmlNombre d'occurences
$i$linkPage aspirées$controlcurl-----
$i$linkPages aspiree$retourcurl-Dump utf-8Contexte .txtContexte .html$nbOccur
$i$linkPage aspirée$retourcurlDump initial
$encodage
Dump utf-8Contexte .txtContexte .html$nbOccur
$i$linkPage aspirée$retourcurlDump initial
$encodage
Dump utf-8Contexte .txtContexte .html$nbOccur
$i$linkPage aspirée$retourcurlDump initial
$encodage
----
$i$linkPage aspirée$retourcurlDump initial
$encodage
----
 Fichier DUMP
global

$nbdump fichier(s)
Fichier CONTEXTES
global

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


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