#!/bin/bash # on récupère les 4 arguments que l'on a passé au programme # le premier : le fichier d'URL # le second : chemin vers le dossier devant contenir le fichier HTML final fichier=$1; languetableau=$3; motif=$4; echo "Le fichier des URLs traité est : $1" ; echo "On créé le tableau HTML dans : $2" ; # on commence par supprimer l'éventuel fichier de résultat que l'on doit reconstruire rm -f "$2/tableau-$languetableau.html" ; echo "TABLEAU D'URLs" > "$2/tableau-$languetableau.html"; #---------------------------------------------------------------- compteur=1; # compteur destiné à compter les URLs pour chaque fichier d'URL #----------------------------------------------------------- # Création du tableau associé au fichier en cours de traitement #----------------------------------------------------------- echo "" >> "$2/tableau-$languetableau.html" ; echo "" >> "$2/tableau-$languetableau.html" ; #---------------------------------------------------------------- # "parcours" d'un fichier d'URL : lecture ligne à ligne des URLs for ligne in $(cat "$fichier") do compteur3=$(printf "%03d" $compteur); echo "----------------------------------------------"; echo "Traitement de l'URL : $ligne"; echo "----------------------------------------------"; #----------------------------------------------------------- # 1. on teste la connexion vers l'URL : récupération de http_code via curl #----------------------------------------------------------- coderetourhttp=$(curl -SIL -o tmp.txt -w %{http_code} $ligne); echo "CODE HTTP : $coderetourhttp"; # si coderetourhttp est egale à 200 if [[ $coderetourhttp == 200 ]] then encodage=$(curl -sIL -o toto -w %{content_type} $ligne | cut -f2 -d"=" | tr '[a-z]' '[A-Z]' | tr -d '\r'); echo "ENCODAGE DETECTE PAR CURL : $encodage"; if [[ $encodage == "TEXT/HTML" ]] then encodage=$(curl $ligne |egrep -io "content=.*?charset=\"?[^\"]+\""|cut -f3 -d"="|tr '[a-z]' '[A-Z]'|sed 's/"//g'); echo "ENCODAGE DETECTE PAR EGREP : $encodage"; fi #----------------------------------------------------------- # 3. on récupère la page localement et on la range dans le bon dossier #----------------------------------------------------------- curl -L -o "./PAGES-ASPIREES/$languetableau-$compteur.html" "$ligne"; #----------------------------------------------------------- if [[ $encodage == "UTF-8" ]] then #----------------------------------------------------------- # On remplit le tableau : 1 ligne par URL et autant de colonnes que de traitement réalisés # Pour le dump via LYNX on travaille sur la page aspirée #----------------------------------------------------------- # 1. On lynx la page aspirée if [[ $languetableau == "FR" ]] then lynx -dump -nolist -assume_charset=$encodage -display_charset=$encodage "./PAGES-ASPIREES/$languetableau-$compteur.html"| tr -d '\[.*\]'> ./DUMP-TEXT/P-$languetableau-$compteur.txt; else lynx -dump -nolist -assume_charset=$encodage -display_charset=$encodage "./PAGES-ASPIREES/$languetableau-$compteur.html" > ./DUMP-TEXT/P-$languetableau-$compteur.txt; fi #----------------------------------------------------------- # 2. On cree le fichier contexte TXT via egrep egrep -i -C2 "$motif" ./DUMP-TEXT/P-$languetableau-$compteur.txt > ./CONTEXTES/P-$languetableau-$compteur.txt; mv ./CONTEXTES/P-$languetableau-$compteur.txt ./CONTEXTES/P-$languetableau-$compteur3.txt; #----------------------------------------------------------- # 3. Fq motif nbmotif=$(egrep -coi "$motif" ./DUMP-TEXT/P-$languetableau-$compteur.txt;); #----------------------------------------------------------- # 4. contexte html perl ./minigrep/minigrepmultilingue.pl "utf-8" ./DUMP-TEXT/P-$languetableau-$compteur.txt ./minigrep/parametre-motif_autres.txt ; mv resultat-extraction.html ./CONTEXTES/$languetableau-$compteur.html ; #----------------------------------------------------------- # 5. index hierarchique egrep -o "\w+" ./DUMP-TEXT/P-$languetableau-$compteur.txt | sort | uniq -c | sort -r > ./DUMP-TEXT/index-$languetableau-$compteur.txt ; #----------------------------------------------------------- # 6. bigramme egrep -o "\w+" ./DUMP-TEXT/P-$languetableau-$compteur.txt > bi1.txt; tail -n +2 bi1.txt > bi2.txt ; paste bi1.txt bi2.txt > bi3.txt ; cat bi3.txt | sort | uniq -c | sort -r > ./DUMP-TEXT/bigramme-$languetableau-$compteur.txt ; #----------------------------------------------------------- # 7. on écrit les résultats dans le tableau avec tous les résultats produits echo "" >> "$2/tableau-$languetableau.html"; #----------------------------------------------------------- else if [[ $encodage != "" ]] then reponse=$(iconv -l | egrep "$encodage") ; if [[ $reponse != "" ]] then curl -sL -o "./PAGES-ASPIREES/$languetableau-$compteur.html" "$ligne" ; # dump de l'URL if [[ $languetableau == "FR" ]] then lynx -dump -nolist -assume_charset=$encodage -display_charset=$encodage "./PAGES-ASPIREES/$languetableau-$compteur.html"| tr -d '\[.*\]'> ./DUMP-TEXT/P-$languetableau-$compteur.txt; else lynx -dump -nolist -assume_charset=$encodage -display_charset=$encodage "./PAGES-ASPIREES/$languetableau-$compteur.html" > ./DUMP-TEXT/P-$languetableau-$compteur.txt; fi iconv -f $encodage -c -t utf-8 ./DUMP-TEXT/$languetableau-$compteur.txt > /DUMP-TEXT/P-$languetableau-$compteur.txt; egrep -i -C2 "$motif" ./DUMP-TEXT/P-$languetableau-$compteur.txt > ./CONTEXTES/P-$languetableau-$compteur.txt; mv ./CONTEXTES/P-$languetableau-$compteur.txt ./CONTEXTES/P-$languetableau-$compteur3.txt; #----------------------------------------------------------- # 3. Fq motif nbmotif=$(egrep -coi "$motif" ./DUMP-TEXT/P-$languetableau-$compteur.txt;); #----------------------------------------------------------- # 4. contexte html perl ./minigrep/minigrepmultilingue.pl "utf-8" ./DUMP-TEXT/P-$languetableau-$compteur.txt ./minigrep/parametre-motif.txt ; mv resultat-extraction.html ./CONTEXTES/$languetableau-$compteur.html ; #----------------------------------------------------------- # 5. index hierarchique egrep -o "\w+" ./DUMP-TEXT/P-$languetableau-$compteur.txt | sort | uniq -c | sort -r > ./DUMP-TEXT/index-$languetableau-$compteur.txt ; #----------------------------------------------------------- # 6. bigramme egrep -o "\w+" ./DUMP-TEXT/P-$languetableau-$compteur.txt > bi1.txt; tail -n +2 bi1.txt > bi2.txt ; paste bi1.txt bi2.txt > bi3.txt ; cat bi3.txt | sort | uniq -c | sort -r > ./DUMP-TEXT/bigramme-$languetableau-$compteur.txt ; #----------------------------------------------------------- # 7. on écrit les résultats dans le tableau avec tous les résultats produits echo "" >> "$2/tableau-$languetableau.html"; else #----------------------------------------------------------- # Ici on a un URL pas OK (code http différent de 200, # Cette URL ne sera pas traitée # on la laisse dans le tableau avec des colonnes vides !!!! #----------------------------------------------------------- echo "" >> "$2/tableau-$languetableau.html"; fi else echo "" >> "$2/tableau-$languetableau.html"; fi fi else #----------------------------------------------------------- # Ici on a un URL pas OK (code http différent de 200, # Cette URL ne sera pas traitée # on la laisse dans le tableau avec des colonnes vides !!!! #----------------------------------------------------------- echo "" >> "$2/tableau-$languetableau.html"; fi # on incrémente le compteur des URLs compteur=$((compteur+1)) ; done #---------------------------------------------------------------- echo "
URLCode httpencodagePage aspiréeDump-brutDump-UTF8Filtrage TxtFiltrage HtmlIndexBitexteFq Motif
$compteur $ligne $coderetourhttp $encodage $languetableau-$compteur3.html - P-$languetableau-$compteur3.txt P-$languetableau-$compteur3.txt $languetableau-$compteur3.html index-$languetableau-$compteur3.txt bigramme-$languetableau-$compteur3.txt $nbmotif
$compteur $ligne $coderetourhttp $encodage $languetableau-$compteur3.html $languetableau-$compteur3.txt P-$languetableau-$compteur3.txt P-$languetableau-$compteur3.txt $languetableau-$compteur3.html index-$languetableau-$compteur3.txt bigramme-$languetableau-$compteur3.txt $nbmotif
$compteur$lignecoderetourhttp---------
$compteur$ligne$coderetourhttp---------
$compteur$ligne$coderetourhttp--------

" >> "$2/tableau-$languetableau.html" ; #---------------------------------------------------------------- echo "" >> "$2/tableau-$languetableau.html" ;