Cette page montre quelques petits scripts qui servit à l'entrainement de programmation (surtout les commandes Bash et HTML) :

Script 1 :
Objectif : Lire un fichier contenant une liste d'URL et produire un fichier HTML contenant un tableau (à 1 colonne) regroupant ces URLs

#!/bin/bash
echo "Donnez le nom du fichier contenant les lien http:";
read fic;
echo "Donnez le nom du fichier html ou stocker ces liens:";
read tablo;
echo "<html><head><title>tableu de liens</title></head><body><table border=\"1\">" > $tablo;
for nom in `cat $fic`
do
echo "<tr><td>$nom</td></tr>" >> $tablo;
done
echo "</table></body></html>" >> $tablo;

Résultat :

 

Modification du script1 :
Objectifs :
Insérer une nouvelle colonne en y insérant le numéro de l'URL lue
Modifier le codage HTML pour établir un lien vers l'URL
Modifier le script pour traiter 2 (ou plusieurs) fichiers d'URLs et construire en sortie dans le même fichier 2 (ou plusieurs) tableaux

#!/bin/bash
echo "Donnez le nom du répertoire contenant les fichiers des URLs : ";
read REP;
echo "Donnez le nom du fichier html où stocker les tableaux des liens : ";
read tablo;
echo "<html><head><title>tableaux de liens</title></head><body>" > $tablo;
echo "<p align=\"center\"><hr color=\"red\" ></p>" >> $tablo;
#Variable pour compter les tableaux
i=1;
for fic in `ls $REP`
do
echo "<table align=\"center\" border=\"1\"><tr><td colspan=\"2\" align=\"center\" color=\"black\"><b>Tableau N. $i</b></font></td></tr>" >> $tablo;
# Variable i pour compter les URLs
j=1;
for nom in `cat $REP/$fic`
do
echo "<tr><td align=\"center\" width=\"50\">$j</td><td align=\"left\" width=\"800\"><a href=\"$nom\">$nom</a></td></tr>" >> $tablo;
let "j+=1";
done
echo "</table>" >> $tablo;
let "i+=1";
echo "<p align=\"center\"><hr color=\"red\" ></p>" >> $tablo;
done
echo "</body></html>" >> $tablo;
 
Résultat :


Script 2 :
Objectif : Lire un fichier contenant une liste d'URL, produire un fichier HTML contenant un tableau (à 2 colonnes) regroupant (1) ces URLs et (2) les pages aspirées correspondantes. Etablir les liens vers les 2 ressources (URL, page locale).

#!/bin/bash
# Lir un fichier contenant une liste d'url, produire un fichier HTML contenant un tableau (à 2 colonnes) regroupant ces urls et les pages aspirées correspondantes. Etablir les liens ver les 2 ressources.
echo "Donnez le nom du fichier contenant les lien http:";
read fic;
echo "Donnez le nom du fichier html ou stocker ces liens:";
read tablo;
echo "<html><head><title>tableu de liens</title></head><body><table border=\"1\">" > $tablo;
i=1;
for nom in `cat $fic`
do
wget -O ../PAGES-ASPIREES/$i.html $nom
echo "<tr><td><a href=\"$nom\">$nom</td><td><a href=\"../PAGES-ASPIREES/$i.html\">PAGE ASPIREE</a></td></tr>" >> $tablo;
let "i+=1";
done
echo "</table></body></html>" >> $tablo;


Résultat :


Script 3 :
Objectif : Lire un (ou plusieurs) fichier(s) contenant une liste d'URL, produire un fichier HTML contenant un (ou plusieurs) tableau(x) (à 3 colonnes chacun) regroupant (1) ces URLs, (2) les pages aspirées correspondantes, (3) les DUMPS des pages aspirées obtenus avec lynx. Etablir les liens vers les 3 ressources (URL, page locale, dump)
Contrainte supplémentaire :
le fichier dump devra être converti en utf8 i.e conversion d'encodage en utf8 si nécessaire
si la page initiale est encodée en utf8, rien à faire
si la page initiale n'est pas en utf8, il faudra appliquer une opération de transcodage (via la commande iconv par exemple)
Le tableau final pourra donc compter à ce stade 2 colonnes pour le fichier dump : une pour le "fichier dumpé" avec l'encodage initial, l'autre pour le "fichier dumpé" avec transcodage en utf8

#!/bin/bash
echo "Donnez le nom du fichier contenant les lien http:";
read fic;
echo "Donnez le nom du fichier html ou stocker ces liens:";
read tablo;
echo "<html><head><title>tableu de liens</title></head><body><table border=\"1\">" > $tablo;
i=1;
for nom in `cat $fic`
do
wget -O ../PAGES-ASPIREES/$i.html $nom
lynx -dump $nom > ../DUMP-TEXT/$i.txt
echo "<tr><td><a href=\"$nom\">$nom</td><td><a href=\"../PAGES-ASPIREES/$i.html\">PAGE ASPIREE</a></td><td><a href=\"../DUMP-TEXT/$i.txt\">PAGE DUMP</a></td></tr>" >> $tablo;
let "i+=1";
done
echo "</table></body></html>" >> $tablo;

Résultat :


Script 4 :
Objectif : Lire un (ou plusieurs) fichier(s) contenant une liste d'URL, produire un fichier HTML contenant un (ou plusieurs) tableau(x) (à 3 colonnes chacun) regroupant (1) ces URLs, (2) les pages aspirées correspondantes, (3) les DUMPS des pages aspirées obtenus avec lynx. Etablir les liens vers les 3 ressources (URL, page locale, dump)

#!/bin/bash
#Lire un fichier contenant une liste d'url, produire un fichier HTML contenant un tableau (à 3 colonnes) regroupant ces urls et les pages aspirées correspondantes, les DUMPS des pages aspirées obtenus avec lynx. Etablir les liens ver les 3 ressources (URL, page locale, dump)
echo "Donnez le nom du repertoire contenant les lien http:";
read REP;
echo "Donnez le nom du fichier html ou stocker ces liens:";
read tablo;
echo "<html><head><title>tableu de liens</title></head><body><table border=\"1\">" > $tablo;
i=1;
for fichier in `ls $REP`
do
for nom in `cat $REP/$fichier`
do
wget -O ../PAGES-ASPIREES/$i.html $nom
lynx -dump $nom > ../DUMP-TEXT/$i.txt
echo "<tr><td>$i</td><td><a href=\"$nom\">$nom</td><td><a href=\"../PAGES-ASPIREES/$i.html\">PAGE ASPIREE</a></td><td><a href=\"../DUMP-TEXT/$i.txt\">PAGE DUMP</a></td></tr>" >> $tablo;
let "i+=1";
done
done
echo "</table></body></html>" >> $tablo;

Script 5 :
Objectif : Lire un (ou plusieurs) fichier(s) contenant une liste d'URL, produire un fichier HTML contenant un (ou plusieurs) tableau(x) (à 4 colonnes chacun) regroupant (1) ces URLs, (2) les pages aspirées correspondantes, (3) les DUMPS des pages aspirées obtenus avec lynx, (4) les contextes obtenus avec egrep. Etablir les liens vers les 4 ressources (URL, page locale, dump, contexte)

#!/bin/bash
# Lire un (ou plusieurs) fichier(s) contenant une liste d'url, produire un fichier HTML contenant un (ou plusieurs) tableau(x) (à 5 colonnes chacun) regroupant (1)les numéros de URLs (2)ces urls (3)les pages aspirées correspondantes (4)les DUMPS des pages aspirées obtenus avec lynx (5)les contextes obtenus avec egrep. Etablir les liens ver les 4 dernières ressources (URL, page locale, dump, contexte)
echo "Donnez le nom du repertoire contenant les lien http:";
read REP;
echo "Donnez le nom du fichier html ou stocker ces liens:";
read tablo;
echo "Donnez le motif recherché sur les pages originales:";
read motif;
echo "<html><head><title>tableu de liens</title></head><body><table border=\"1\">" > $tablo;
i=1;
for fichier in `ls $REP`
do
echo "<table border=1>" >> $tablo;
echo "<tr><td align="center" bgcolor=\"red\" colspan=\"3\"><b>fichier $fichier</b></td></tr>" >> $tablo;
for nom in `cat $REP/$fichier`
do
wget -O ../PAGES-ASPIREES/$i.html $nom
lynx -dump $nom > ../DUMP-TEXT/$i.txt
egrep -i "\b$motif\b" ../DUMP-TEXT/$i.txt > ../CONTEXTES/$i.txt
echo "<tr><td>$i</td><td><a href=\"$nom\">$nom</td><td><a href=\"../PAGES-ASPIREES/$i.html\">PAGE ASPIREE</a></td><td><a href=\"../DUMP-TEXT/$i.txt\">PAGE DUMP</a></td><td><a href=\"../CONTEXTES/$i.txt\">PAGE CONTEXTE</a></td></tr>" >> $tablo;
let "i+=1";
done
echo "</table>" >> $tablo;
echo "<br>" >> $tablo;
done
echo "</body></html>" >> $tablo;
#echo "</table></body></html>" >> $tablo;

Résultat :