samedi 14 décembre 2013

Presque fini !!!

Après près d'un mois sans nouvelles, nous vous présentons notre script générant 10 colonnes.
Le script étant déjà bien commenté , nous nous abstenons de rallonger ce post


#!/bin/bash # Création des répertoires mkdir ./CONTEXTES; mkdir ./DUMP-TEXT; mkdir ./PAGES-ASPIREES; mkdir ./TABLEAUX; # Création d'un répertoire temporaire pour les besoins du trameur (il est effacé à la fin de ce script) mkdir -p TEMP; # Input read dossier_urls; read fichier_tableau; read motif; # Style Page HTML echo "<!doctype html> <html> <head> <meta charset="utf-8"> <title>Grèves dans le monde</title>" > $fichier_tableau; # Compteur fichiers urls j=1; for fichier_url in `ls $dossier_urls` do # Titre Tableau echo "<table align=center border="1" width="100%"> <tr> <th bgcolor=\"black\" colspan="10" align="center">Tableau n&deg$j<br/ align="center"> Fichier: $fichier_url</th> </tr>" >> $fichier_tableau; # 1ère ligne du Tableau echo "<tr><td bgcolor=\"black\" align="center">N&degURL</td><td bgcolor=\"black\" align="center">URL</td><td bgcolor=\"black\" align="center">Pages aspir&eacute;es</td><td bgcolor=\"black\" align="center">Retour WGET</td><td bgcolor=\"black\" align="center">DUMP initial<br/>(non utf-8)</td><td bgcolor=\"black\" align="center">DUMP UTF-8</td><td bgcolor=\"black\" align="center">CONTEXTES</td><td bgcolor=\"black\" align="center">CONTEXTES<br/>HTML</b></td><td bgcolor=\"black\" align="center">Nb Occurences</td><td bgcolor=\"black\" align="center">INDEX<br/>Fq mots</td></tr>" >> $fichier_tableau; # Compteur urls i=1; # Compteur dumps nbdump=0; # Noms des sous-dossiers (remplace le compteur avec les noms des langues) w=$(basename $fichier_url .txt) # Créer les sous-répertoires mkdir -p CONTEXTES/$w; mkdir -p DUMP-TEXT/$w; mkdir -p PAGES-ASPIREES/$w; mkdir -p INDEX/$w; mkdir -p FICHIERS-GLOBAUX/DUMP-GLOBAUX; mkdir -p FICHIERS-GLOBAUX/CONTEXTES-GLOBAUX; mkdir -p FICHIERS-GLOBAUX/INDEX-GLOBAUX; for ligne in `cat $dossier_urls/$fichier_url` do # Aspiration pages wget -O ./PAGES-ASPIREES/$w/$i.html "$ligne"; # Vérification contenu retourwget=$?; contenupageaspiree=$(egrep -i -o "(400 )?Bad request|Moved Permanently|s interdit|Not Acceptable" ./PAGES-ASPIREES/$w/$i.html | sort -u); # Méthode encodage 1 (file -i) if test $retourwget == 0; then encodage=$(file -i ./PAGES-ASPIREES/$w/$i.html | cut -d= -f2); # Encodage UTF-8 if test $encodage == "utf-8" then # Dump UTF-8 lynx -dump -nolist -display_charset=$encodage ./PAGES-ASPIREES/$w/$i.html > ./DUMP-TEXT/$w/$i-utf8.txt; # Contextes UTF-8 egrep -i -A 1 -B 1 `cat $motif` ./DUMP-TEXT/$w/$i-utf8.txt > ./CONTEXTES/$w/$i-utf8.txt; # Contextes HTML perl ./PROGRAMMES/minigrepmultilingue-v2.2-regexp/minigrepmultilingue.pl "UTF-8" ./DUMP-TEXT/$w/$i-utf8.txt ./PROGRAMMES/minigrepmultilingue-v2.2-regexp/motif-regexp.txt; mv resultat-extraction.html ./CONTEXTES/$w/$i.html; # Occurences nbOccur=??; nbOccur=$(egrep -c `cat $motif` ./DUMP-TEXT/$w/$i-utf8.txt); # Index cat ./DUMP-TEXT/$w/$i-utf8.txt | tr [:space:] '\n' | grep -v -e "\W" -e [0-9] -e "_" | sort | tr [:upper:] [:lower:] | uniq -c | sort -bnr > ./INDEX/$w/$i.txt; # Intégrer au tableau echo "<tr><td>$i</td><td><a href=\"$ligne\">$ligne</a></td><td><a href=\"../PAGES-ASPIREES/$w/$i.html\">$i.html</a></td><td>$retourwget</td><td>&nbsp;-&nbsp;</td><td><a href=\"../DUMP-TEXT/$w/$i-utf8.txt\">$i-utf8.txt</a></td><td><a href=\"../CONTEXTES/$w/$i-utf8.txt\">$i-utf8.txt</a></td><td><a href=\"../CONTEXTES/$w/$i.html\">$i.html</a></td><td>$nbOccur</td><td><a href=\"../INDEX/$w/$i.txt\">$i.txt</a></td></tr>" >> $fichier_tableau; # Contextes globaux cat ./CONTEXTES/$w/$i-utf8.txt >> ./FICHIERS-GLOBAUX/CONTEXTES-GLOBAUX/CONTEXTES-GLOBAUX_$w.txt; # Dump globaux cat ./DUMP-TEXT/$w/$i-utf8.txt >> ./FICHIERS-GLOBAUX/DUMP-GLOBAUX/DUMP-GLOBAUX_$w.txt; # Index Global cat ./FICHIERS-GLOBAUX/DUMP-GLOBAUX/DUMP-GLOBAUX_$w.txt | tr [:space:] '\n' | grep -v -e "\W" -e [0-9] -e "_" | sort | tr [:upper:] [:lower:] | uniq -c | sort -bnr > ./FICHIERS-GLOBAUX/INDEX-GLOBAUX/INDEX-GLOBAUX_$w.txt; # Actualisation compteur dump let "nbdump+=1"; # Méthode encodage 2 (iconv -l) else encodageiconv=$(iconv -l | egrep -io $encodage | sort -u); if test "$encodageiconv" != ""; then # Dump initial lynx -dump -nolist -display_charset=$encodage ./PAGES-ASPIREES/$w/$i.html > ./DUMP-TEXT/$w/$i.txt; # Conversion Dump initial en UTF-8 iconv -f $encodage -t utf-8 ./DUMP-TEXT/$w/$i.txt > ./DUMP-TEXT/$w/$i-utf8.txt; # Contextes UTF-8 egrep -i -A 1 -B 1 `cat $motif` ./DUMP-TEXT/$w/$i-utf8.txt > ./CONTEXTES/$w/$i-utf8.txt; # Occurences nbOccur=??; nbOccur=$(egrep -c `cat $motif` ./DUMP-TEXT/$w/$i-utf8.txt); # Index cat ./DUMP-TEXT/$w/$i-utf8.txt | tr [:space:] '\n' | grep -v -e "\W" -e [0-9] -e "_" | sort | tr [:upper:] [:lower:] | uniq -c | sort -bnr > ./INDEX/$w/$i.txt; # Contextes HTML perl ./PROGRAMMES/minigrepmultilingue-v2.2-regexp/minigrepmultilingue.pl "UTF-8" ./DUMP-TEXT/$w/$i-utf8.txt ./PROGRAMMES/minigrepmultilingue-v2.2-regexp/motif-regexp.txt; mv resultat-extraction.html ./CONTEXTES/$w/$i.html; # Intégrer au tableau echo "<tr><td>$i</td><td><a href=\"$ligne\">$ligne</a></td><td><a href=\"../PAGES-ASPIREES/$w/$i.html\">$i.html</a></td><td>$retourwget</td><td><a href=\"../DUMP-TEXT/$w/$i.txt\">$i.txt</a><br/>($encodage)</small></td><td><a href=\"../DUMP-TEXT/$w/$i-utf8.txt\">$i-utf8.txt</a></td><td><a href=\"../CONTEXTES/$w/$i-utf8.txt\">$i-utf8.txt</a></td><td><a href=\"../CONTEXTES/$w/$i.html\">$i.html</a></td><td>$nbOccur</td><td><a href=\"../INDEX/$w/$i.txt\">$i.txt</a></td></tr>" >> $fichier_tableau; # Contextes globaux cat ./CONTEXTES/$w/$i-utf8.txt >> ./FICHIERS-GLOBAUX/CONTEXTES-GLOBAUX/CONTEXTES-GLOBAUX_$w.txt; # Dump globaux cat ./DUMP-TEXT/$w/$i-utf8.txt >> ./FICHIERS-GLOBAUX/DUMP-GLOBAUX/DUMP-GLOBAUX_$w.txt; # Index Global cat ./FICHIERS-GLOBAUX/DUMP-GLOBAUX/DUMP-GLOBAUX_$w.txt | tr [:space:] '\n' | grep -v -e "\W" -e [0-9] -e "_" | sort | tr [:upper:] [:lower:] | uniq -c | sort -bnr > ./FICHIERS-GLOBAUX/INDEX-GLOBAUX/INDEX-GLOBAUX_$w.txt; # Actualisation compteur dump let "nbdump+=1"; # Méthode encodage 3 (egrep -i "<meta.*charset") else if egrep -i "<meta.*charset" ./PAGES-ASPIREES/$w/$i.html; then encodage=$(egrep -i "<meta.*charset" ./PAGES-ASPIREES/$w/$i.html | egrep -i -o 'charset *=[^\"]+' | tr [A-Z] [a-z] | sort -u | cut -f2 -d=); encodageiconv=$(iconv -l | egrep -io $encodage | sort -u); if test $encodageiconv == "" then echo "<tr><td>$i</td><td><a href=\"$ligne\">$ligne</a></td><td><a href=\"../PAGES-ASPIREES/$w/$i.html\">$i.html</a></td><td>$retourwget</td><td bgcolor=\"blue\">Encodage<br/>non d&eacute;tect&eacute;</td><td bgcolor=\"blue\">Encodage<br/>non d&eacute;tect&eacute;</td><td bgcolor=\"blue\">Encodage<br/>non d&eacute;tect&eacute;</td><td bgcolor=\"blue\">Encodage<br/>non d&eacute;tect&eacute;</td><td bgcolor=\"blue\">Encodage<br/>non d&eacute;tect&eacute;</td><td bgcolor=\"blue\">Encodage<br/>non d&eacute;tect&eacute;</td><td bgcolor=\"blue\">Encodage<br/>non d&eacute;tect&eacute;</td></tr>" >> $fichier_tableau; echo "Erreur Tableau $w ligne $i" >> ./Erreurs.txt; else # Dump initial lynx -dump -nolist -display_charset=$encodage ./PAGES-ASPIREES/$w/$i.html > ./DUMP-TEXT/$w/$i.txt; # Conversion Dump initial en UTF-8 iconv -f $encodage -t utf-8 ./DUMP-TEXT/$w/$i.txt > ./DUMP-TEXT/$w/$i-utf8.txt; # Contextes UTF-8 egrep -i -A 1 -B 1 `cat $motif` ./DUMP-TEXT/$w/$i-utf8.txt > ./CONTEXTES/$w/$i-utf8.txt; # Occurences nbOccur=??; nbOccur=$(egrep -c `cat $motif` ./DUMP-TEXT/$w/$i-utf8.txt); # Index cat ./DUMP-TEXT/$w/$i-utf8.txt | tr [:space:] '\n' | grep -v -e "\W" -e [0-9] -e "_" | sort | tr [:upper:] [:lower:] | uniq -c | sort -bnr > ./INDEX/$w/$i.txt; # Contextes HTML perl ./PROGRAMMES/minigrepmultilingue-v2.2-regexp/minigrepmultilingue.pl "UTF-8" ./DUMP-TEXT/$w/$i-utf8.txt ./PROGRAMMES/minigrepmultilingue-v2.2-regexp/motif-regexp.txt; mv resultat-extraction.html ./CONTEXTES/$w/$i.html; # Intégrer au tableau echo "<tr><td>$i</td><td><a href=\"$ligne\">$ligne</a></td><td><a href=\"../PAGES-ASPIREES/$w/$i.html\">$i.html</a></td><td>$retourwget</td><td><a href=\"../DUMP-TEXT/$w/$i.txt\">$i.txt</a><br/>($encodage)</td><td><a href=\"../DUMP-TEXT/$w/$i-utf8.txt\">$i-utf8.txt</a></td><td><a href=\"../CONTEXTES/$w/$i-utf8.txt\">$i-utf8.txt</a></td><td><a href=\"../CONTEXTES/$w/$i.html\">$i.html</a></td><td>$nbOccur</td><td><a href=\"../INDEX/$w/$i.txt\">$i.txt</a></td></tr>" >> $fichier_tableau; # Contextes globaux cat ./CONTEXTES/$w/$i-utf8.txt >> ./FICHIERS-GLOBAUX/CONTEXTES-GLOBAUX/CONTEXTES-GLOBAUX_$w.txt; # Dump globaux cat ./DUMP-TEXT/$w/$i-utf8.txt >> ./FICHIERS-GLOBAUX/DUMP-GLOBAUX/DUMP-GLOBAUX_$w.txt; # Index Global cat ./FICHIERS-GLOBAUX/DUMP-GLOBAUX/DUMP-GLOBAUX_$w.txt | tr [:space:] '\n' | grep -v -e "\W" -e [0-9] -e "_" | sort | tr [:upper:] [:lower:] | uniq -c | sort -bnr > ./FICHIERS-GLOBAUX/INDEX-GLOBAUX/INDEX-GLOBAUX_$w.txt; # Actualisation compteur dump let "nbdump+=1"; fi # Méthode 3 ne fonctionne pas else echo "<tr><td>$i</td><td><a href=\"$ligne\">$ligne</a></td><td><a href=\"../PAGES-ASPIREES/$w/$i.html\">$i.html</a></td><td>$retourwget</td><td bgcolor=\"blue\">Encodage<br/>non d&eacute;tect&eacute;</td><td bgcolor=\"blue\">Encodage<br/>non d&eacute;tect&eacute;</td><td bgcolor=\"blue\">Encodage<br/>non d&eacute;tect&eacute;</td><td bgcolor=\"blue\">Encodage<br/>non d&eacute;tect&eacute;</td><td bgcolor=\"blue\">Encodage<br/>non d&eacute;tect&eacute;</td><td bgcolor=\"blue\">Encodage<br/>non d&eacute;tect&eacute;</td></tr>" >> $fichier_tableau; echo "Erreur Tableau $w ligne $i" > ./Erreurs.txt; fi fi fi # Si le WGET échoue else retourwget="Erreur"; echo "<tr><td>$i</td><td><a href=\"$ligne\">$ligne</a></td><td bgcolor=\"red\">Page non aspir&eacute;e</td><td bgcolor=\"red\">$retourwget</td><td bgcolor=\"red\">Page non aspir&eacute;e</td><td bgcolor=\"red\">Page non aspir&eacute;e</td><td bgcolor=\"red\">Page non aspir&eacute;e</td><td bgcolor=\"red\">Page non aspir&eacute;e</td><td bgcolor=\"red\">Page non aspir&eacute;e</td><td bgcolor=\"red\">Page non aspir&eacute;e</td></tr>" >> $fichier_tableau; echo "Erreur Tableau $w ligne $i" >> ./Erreurs.txt; fi # Actualisation compteur urls let "i+=1"; done # Intégrer Fichiers globaux au tableau echo "<tr><td colspan=\"5\">&nbsp</td><td><a href="../FICHIERS-GLOBAUX/DUMP/DUMP-GLOBAUX_$w.txt">Fichier DUMP<br/>global</a><br/>$nbdump fichier(s)</td><td><a href="../FICHIERS-GLOBAUX/CONTEXTES/CONTEXTES-GLOBAUX_$w.txt">Fichier CONTEXTES<br/>global</a><br/>$nbdump fichier(s)</td><td>&nbsp</td><td colspan="1"></td><td><a href="../FICHIER-GLOBAUX/INDEX-GLOBAUX.txt">Fichier Index<br/>global</a><br/>$nbdump fichier(s)</td></tr>" >> $fichier_tableau; # Fin du tableau echo "</table>" >> $fichier_tableau; # Actualisation compteur fichiers urls let "j+=1"; done # Fin page HTML echo "</body> </html>" >> $fichier_tableau;

Aucun commentaire:

Enregistrer un commentaire