#!/bin/bash # 1. Lecture des paramètres dans le fichier PARAMETRES read DOSSIERURLS; read fichier_tableau; read motif; echo "Le dossier d'URLs : $DOSSIERURLS " ; echo "Le fichier contenant le tableau : $fichier_tableau" ; echo "Le motif est : $motif" ; # 2. Affichage des tableaux cpttableau=1; echo "" > $fichier_tableau ; #====== pour chacun des fichiers d'URL ======== for fichier in `ls $DOSSIERURLS` { # debut du premier for #------------------------------------------------- # traitement d'un fichier d'URL compteur=1; # initialisation d'un compteur pour compter les URLs echo "


" >> $fichier_tableau ; echo "" >> $fichier_tableau ; echo "" >> $fichier_tableau ; echo "" >> $fichier_tableau ; #------------------------------------------------- # traitement de chacun des URLs for line in `cat $DOSSIERURLS/$fichier` #------------------------------------------------- # pour chacune des lignes du fichier d'URL traité (une URL)... { # ==> ASPIRATION DE LA PAGE echo "TELECHARGEMENT de $line vers ./PAGES-ASPIREES/$cpttableau-$compteur.html" ; # 1. RECUPERATION DU HEADER HTTP status1=$(curl -sI $line | head -n 1); # 2. RECUPERATION DU CODE RETOUR HTTP ET DE LA PAGE status2=$(curl --silent -L --output ./PAGES-ASPIREES/"$cpttableau-$compteur".html --write-out "%{http_code}" $line); echo "STATUT CURL : $status2" ; #----------------------------------------------------------------------- # le test de la bonne reussite du telechargement est a faire par vous... # si ca se passe mal, inutile de faire la suite... #----------------------------------------------------------------------- if [[ $status2 == '200' ]]; then echo le telechargement marche bien; else echo le telechargement ne marche pas; fi # ==> DETECTION DE L'ENCODAGE DE LA PAGE en ligne echo "DETECTION encodage de $line "; encodage=$(curl -sI $line | egrep -i "charset=" | cut -f2 -d= | tr -d "\n" | tr -d "\r" | tr "[:upper:]" "[:lower:]"); echo "ENCODAGE $line : <$encodage>" ; if [[ $encodage == "utf-8" ]] then echo "DUMP de $line via lynx" ; lynx -dump -nolist -assume_charset=$encodage -display_charset=$encodage $line > ./DUMP-TEXT/$cpttableau-$compteur.txt ; # ajouter ici l'extraction de contexte autour des mots choisis egrep -i $motif ./DUMP-TEXT/$cpttableau-$compteur.txt > ./CONTEXTES/$cpttableau-$compteur.txt ; nbmotif=$(egrep -coi $motif ./DUMP-TEXT/$cpttableau-$compteur.txt); perl ./PROGRAMMES/minigrep/minigrepmultilingue.pl "utf-8" ./DUMP-TEXT/$cpttableau-$compteur.txt ./PROGRAMMES/minigrep/motif.txt ; mv resultat-extraction.html ./CONTEXTES/$cpttableau-$compteur.html ; echo "ECRITURE RESULTAT dans le tableau" ; echo "" >> $fichier_tableau ; else #------------------------------------------ # ATTENTION : avant de faire ce qui suit : # il faudrait s'assurer que l'encodage recupere est bien un "BON" encodage !!!! # dans un premier temps on s'assure SEULEMENT que cette variable n'est pas vide # et ça ne suffit pas, il faudra en faire plus #------------------------------------------ if [[ $encodage != "" ]] then VERIFENCODAGEDANSICONV=$(iconv -l | egrep -o "[-A-Z0-9\_\:]+" |egrep -i $encodage) ; #------------------------------------------ # ici il faut s'assurer que l'encodage est bien connu de iconv !!!! #------------------------------------------ if [[ $VERIFENCODAGEDANSICONV == "" ]] then #------------- On ne fait rien... ------------------------------------------------- echo "" >> $fichier_tableau ; else echo "DUMP (via $encodage) de $line via lynx" ; lynx -dump -nolist -assume_charset=$encodage -display_charset=$encodage $line > ./DUMP-TEXT/$cpttableau-$compteur.txt ; iconv -f $encodage -t utf-8 ./DUMP-TEXT/$cpttableau-$compteur.txt > ./DUMP-TEXT/$cpttableau-$compteur-utf8.txt ; egrep -i $motif ./DUMP-TEXT/$cpttableau-$compteur-utf8.txt > ./CONTEXTES/$cpttableau-$compteur.txt ; nbmotif=$(egrep -coi $motif ./DUMP-TEXT/$cpttableau-$compteur-utf8.txt); perl ./PROGRAMMES/minigrep/minigrepmultilingue.pl "utf-8" ./DUMP-TEXT/$cpttableau-$compteur-utf8.txt ./PROGRAMMES/minigrep/motif.txt ; mv resultat-extraction.html ./CONTEXTES/$cpttableau-$compteur.html ; echo "ECRITURE RESULTAT dans le tableau" ; echo "" >> $fichier_tableau ; fi else isthereacharset=$(egrep -i -o "meta(.*)?charset" ./PAGES-ASPIREES/"$cpttableau-$compteur".html); if [[ $isthereacharset != "" ]] then encodage=$(egrep -i -o "meta(.*)charset[^=]*?=[^\"]*?\"?[^\"]+?\"" ./PAGES-ASPIREES/$cpttableau-$compteur.html | egrep -i -o "charset[^=]*?= *?\"?[^\"]+?\"" | cut -f2 -d= | sed "s/\"//g" | sed "s/>//g" | sed "s/ //g" | sed "s/\///g" | sort -u | tr [A-Z] [a-z] ); echo "ENCODAGE EXTRAIT DE LA PAGE ASPIREE : $encodage" ; if [[ $encodage == "utf-8" ]] then echo "DUMP de $line via lynx" ; lynx -dump -nolist -assume_charset=$encodage -display_charset=$encodage $line > ./DUMP-TEXT/$cpttableau-$compteur.txt ; egrep -i $motif ./DUMP-TEXT/$cpttableau-$compteur.txt > ./CONTEXTES/$cpttableau-$compteur.txt ; nbmotif=$(egrep -coi $motif ./DUMP-TEXT/$cpttableau-$compteur.txt); perl ./PROGRAMMES/minigrep/minigrepmultilingue.pl "utf-8" ./DUMP-TEXT/$cpttableau-$compteur.txt ./PROGRAMMES/minigrep/motif.txt ; mv resultat-extraction.html ./CONTEXTES/$cpttableau-$compteur.html ; echo "ECRITURE RESULTAT dans le tableau" ; echo "" >> $fichier_tableau ; else VERIFENCODAGEDANSICONV=$(iconv -l | egrep -o "[-A-Z0-9\_\:]+" |egrep -i $encodage) ; if [[ $VERIFENCODAGEDANSICONV == "" ]] then echo "" >> $fichier_tableau ; else lynx -dump -nolist -assume_charset=$encodage -display_charset=$encodage $line > ./DUMP-TEXT/$cpttableau-$compteur.txt ; iconv -f $encodage -t utf-8 ./DUMP-TEXT/$cpttableau-$compteur.txt > ./DUMP-TEXT/$cpttableau-$compteur-utf8.txt egrep -i $motif ./DUMP-TEXT/$cpttableau-$compteur-utf8.txt > ./CONTEXTES/$cpttableau-$compteur.txt ; nbmotif=$(egrep -coi $motif ./DUMP-TEXT/$cpttableau-$compteur-utf8.txt); perl ./PROGRAMMES/minigrep/minigrepmultilingue.pl "utf-8" ./DUMP-TEXT/$cpttableau-$compteur-utf8.txt ./PROGRAMMES/minigrep/motif.txt ; mv resultat-extraction.html ./CONTEXTES/$cpttableau-$compteur.html ; #------------------------------------------------------------------------------------------------------------------------- echo "ECRITURE RESULTAT dans le tableau" ; echo "" >> $fichier_tableau ; fi fi else echo "" >> $fichier_tableau ; fi fi fi # il faut ajouter 1 au compteur de lignes let "compteur=compteur+1"; # let "compteur+=1"; } #---------------------------------------------------- echo "
tableau n° $cpttableau
LienCODE CURLstatut CURLPage AspiréeEncodage InitialDUMP initialDUMP UTF-8CONTEXTE UTF-8CONTEXTE HTML UTF-8Fq MOTIF
$compteurlien n°$compteur$status2$status1P.A n° $cpttableau-$compteur$encodage-DUMP n° $cpttableau-$compteurCONTEXTE n° $cpttableau-$compteurCONTEXTE n° $cpttableau-$compteur$nbmotif
$compteurlien n°$compteur$status2$status1PA n° $cpttableau-$compteur$encodage
via curl
inconnu de iconv
-----
$compteurlien n°$compteur$status2$status1PA n° $cpttableau-$compteur$encodage
via curl
DUMP n° $cpttableau-$compteurDUMP n° $cpttableau-$compteurCONTEXTE n° $cpttableau-$compteurCONTEXTE n° $cpttableau-$compteur$nbmotif
$compteurlien n°$compteur$status2$status1P.A n° $cpttableau-$compteur$encodage
via charset
-DUMP n° $cpttableau-$compteurCONTEXTE n° $cpttableau-$compteurCONTEXTE n° $cpttableau-$compteur$nbmotif
$compteurlien n°$compteur$status2$status1PA n° $cpttableau-$compteur$encodage

via charset
inconnu de iconv
DUMP n° $cpttableau-$compteur----
$compteurlien n°$compteur$status2$status1PA n° $cpttableau-$compteur$encodage
via charset
DUMP n° $cpttableau-$compteurDUMP n° $cpttableau-$compteurCONTEXTE n° $cpttableau-$compteurCONTEXTE n° $cpttableau-$compteur$nbmotif
$compteurlien n°$compteur$status2$status1PA n° $cpttableau-$compteurAucun encodage extrait...-----
" >> $fichier_tableau ; let "cpttableau=cpttableau+1"; } echo "" >> $fichier_tableau ; #=============================================