lundi 30 décembre 2013

Site Web

Nous arrivons enfin à la partie de préparation de notre site web...Malheureusement, je ne pense pas pouvoir la finir ces jours-ci dû à certains problèmes d'organisation.

Mais ne désespérez pas chers lecteurs, une fois lancé, je vous l'indiquerai ici.

A bientôt !

vendredi 27 décembre 2013

Wohoooo....Nuages !!!!

Ce post sera très très court...Nous allons simplement constituer des nuages pour voir les mots les plus fréquents. En gros c'est comme notre index global mais de manière plus intéressante

Pour cela, nous avons utilisé le site Woordle.

Il suffit d'y coller votre texte et vous aurez un très beau nuage comme ça:




samedi 21 décembre 2013

Let: command not found

Chers lecteurs,

Vous avez dû remarquer que la commande let était de retour dans le script présenté..

Alors pour faire fonctionner cette commande, il faut lancer le script avec la commande suivante:

bash nomscript < input.txt

et non pas sh nomduscript < input.txt

Je dois avouer que c'est par hasard que je l'ai remarqué. Il était déjà tard le soir et je voulais tester les scripts présentés sur icampus pour les comparer au mien et j'ai donc tapé bash....après 2-3 essais j'ai remarqué que ces scripts contenaient la commande let et qu'elle ne m'avait pas donné d'erreur...

Eh oui...Le hasard fait bien les choses !!!

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;

samedi 16 novembre 2013

Alternative à let !!!!!!

Pour l'instant, le projet avance bien et contient 4 colonnes (numéro url, url, page aspirée, dump). Si vous vous souvenez, dans le dernier post on n'avait pu faire fonctionner le compteur car on se retrouvait toujours avec l'erreur "command not found".

Nous n'avons toujours aucune explication à ce sujet mais grâce à notre enseignant Jean-michel Daube, nous avons désormais une alternative qui fonctionne très bien et c'est:
i=`expr $i +1`.

Toutes nos colonnes marchent maintenant !!!

samedi 9 novembre 2013

let doesn't let me have my table !!!!

Alors voici notre premier script...Il est supposé générer un tableau avec nos urls tests (3 urls) avec une colonne numéroté grâce à la commande let.
Pourtant cela ne marche absolument pas à cause du let command not found.
Il va donc falloir trouver une alternative...
#!/bin/bash # Création des répertoires mkdir ./CONTEXTES; mkdir ./DUMP-TEXT; mkdir ./PAGES-ASPIREES; mkdir ./TABLEAUX; echo "Bonjour, veuillez indiquer le chemin du fichier à traiter"; read fichier_a_traiter; echo $fichier_a_traiter; echo "Veuillez indiquer le chemin du tableau à creer"; read fichier_tableau; echo $fichier_tableau; # Infos sur la page echo "echo "<!doctype html><head><meta charset="utf-8"><title>Tableau</title>" > $fichier_tableau; # Compteur urls i=1; # Début tableau echo "<table border=\"1\" align=\"center\">" >> $fichier_tableau; for ligne in `cat $fichier_a_traiter` do # Aspirer la page wget -O ./PAGES-ASPIREES/$i.html "$ligne"; # Dumper la page lynx -dump -nolist $ligne > ./DUMP-TEXT/$i.txt; # Mettre le tout dans le tableau echo "<tr><td>$i</td><td><a href=\"$ligne\">$ligne</a></td><td><a href=\"../PAGES-ASPIREES/$i.html\">Page aspirée n°$i</a></td><td><a href=\"../DUMP-TEXT/$i.txt\">Dump n°$i</a></td></tr>" >> $fichier_tableau; # Actualisation compteur urls let "i+=1"; done # Fin tableau echo "</table>" >> $fichier_tableau; # Fin page HTML echo "</body></html>" >> $fichier_tableau;

dimanche 3 novembre 2013

Ah...le bon vieux tableau HTML

Aujourd'hui, on va voir un peu d'HTML...ça ne vous permettra pas de faire un site entier mais le but ici est de commencer à faire un tableau.

Comment faire???

Indiquer que c'est une page HTML:
<HTML>

Spécifier le type de la page et l'encodage utilisé (c'est mieux de toujours l'indiquer):
<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/>

En-tête:
<title> première page </title>

Corps:
<body>

<table border="1">

<tr><td>Grèves dans le monde </td></tr>
<tr><td>Rien d'autre à dire</td></tr>

</table>
</body>
</html>

Cela vous donnera
Grèves dans le monde
 Rien d'autre à dire