#!/bin/bash #Mise en place des chemins et vérification par echo du nom des dossiers exec < ./configuration.cfg read DOSSIER_URL read TABLEAU read motif_fr read motif_en read motif_es echo "Le dossier contenant les URLs est : $DOSSIER_URL" echo "Le fichier du tableau est : $TABLEAU " echo "Le motif en francais est : $motif_fr" echo "Le motif en anglais est : $motif_en" echo "Le motif en espagnol est : $motif_es" #Début de création du tableau cpttableau=1 echo "Création du tableau" echo "" > $TABLEAU for fichier in `ls $DOSSIER_URL` { compteur=1; # initialisation d'un compteur pour compter les URLs echo "


" >> $TABLEAU ; echo "" >> $TABLEAU ; echo "" >> $TABLEAU ; echo "" >> $TABLEAU ; #------------------------------------------------- # traitement de chacun des URLs for line in `cat $DOSSIER_URL/$fichier` { if [ $cpttableau -eq 1 ]; then motif=$motif_fr elif [ $cpttableau -eq 2 ]; then motif=$motif_en elif [ $cpttableau -eq 3 ]; then motif=$motif_es else echo "erreur critique" fi # ==> ASPIRATION DE LA PAGE echo "TELECHARGEMENT de $line vers ./Pages_ASP/$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 --output ./Pages_ASP/"$cpttableau-$compteur".html --write-out "%{http_code}" $line); echo "STATUT CURL : $status2" ; if [ $status2 == "200" ]; then echo "Le téléchargement est un succès" else echo "Le téléchargement n'a pas fonctionné" fi 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/$cpttableau-$compteur.txt ; # ajouter ici l'extraction de contexte autour des mots choisis egrep -i $motif ./DUMP/$cpttableau-$compteur.txt > ./CONTEXTES/$cpttableau-$compteur.txt ; nbmotif=$(egrep -coi $motif ./DUMP/$cpttableau-$compteur.txt); echo "ECRITURE RESULTAT dans le tableau" ; echo "" >> $TABLEAU ; else 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 "" >> $TABLEAU ; else echo "DUMP (via $encodage) de $line via lynx" ; lynx -dump -nolist -assume_charset=$encodage -display_charset=$encodage $line > ./DUMP/$cpttableau-$compteur.txt ; iconv -f $encodage -t utf-8 ./DUMP/$cpttableau-$compteur.txt > ./DUMP/$cpttableau-$compteur-utf8.txt ; egrep -i $motif ./DUMP/$cpttableau-$compteur-utf8.txt > ./CONTEXTES/$cpttableau-$compteur.txt ; nbmotif=$(egrep -coi $motif ./DUMP/$cpttableau-$compteur-utf8.txt); mv resultat-extraction.html ./CONTEXTES/$cpttableau-$compteur.html ; echo "ECRITURE RESULTAT dans le tableau" ; echo "" >> $TABLEAU ; fi else isthereacharset=$(egrep -i -o "meta(.*)?charset" ./Pages_ASP/"$cpttableau-$compteur".html); if [[ $isthereacharset != "" ]] then encodage=$(egrep -i -o "meta(.*)charset[^=]*?=[^\"]*?\"?[^\"]+?\"" ./Pages_ASP/$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/$cpttableau-$compteur.txt ; egrep -i $motif ./DUMP/$cpttableau-$compteur.txt > ./CONTEXTES/$cpttableau-$compteur.txt ; nbmotif=$(egrep -coi $motif ./DUMP/$cpttableau-$compteur.txt); mv resultat-extraction.html ./CONTEXTES/$cpttableau-$compteur.html ; echo "ECRITURE RESULTAT dans le tableau" ; echo "" >> $TABLEAU ; else VERIFENCODAGEDANSICONV=$(iconv -l | egrep -o "[-A-Z0-9\_\:]+" |egrep -i $encodage) ; if [[ $VERIFENCODAGEDANSICONV == "" ]] then echo "" >> $TABLEAU ; else lynx -dump -nolist -assume_charset=$encodage -display_charset=$encodage $line > ./DUMP/$cpttableau-$compteur.txt ; iconv -f $encodage -t utf-8 ./DUMP/$cpttableau-$compteur.txt > ./DUMP/$cpttableau-$compteur-utf8.txt egrep -i $motif ./DUMP/$cpttableau-$compteur-utf8.txt > ./CONTEXTES/$cpttableau-$compteur.txt ; #------------------------------------------------------------------------------------------------------------------------- echo "ECRITURE RESULTAT dans le tableau" ; echo "" >> $TABLEAU ; fi fi else echo "" >> $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...-----
" >> $TABLEAU ; let "cpttableau=cpttableau+1"; } echo "" >> $TABLEAU ; #=============================================