C'est l'heure : les codes
Publié le 1/10/2015 3:11, par - Groupe de la vie du mot LibertéCréation des fichiers nécessaires :
Comme la première étape on essaie de créer une ambiance pour enregistrer les données suivantes. Tout simplement on a utilisé le mot clé ‘mkdir’ pour les fichiers.
Selon la page du cours et pour la connaissance de ceux qu’ils ne sont pas dans le cours :
- le dossier CONTEXTES regroupe les fichiers issus de l'extraction contextuelle par egrep des mots traités dans les fichiers du dossier DUMP-TXT.
L’objectif de cette étape du projet et de lire un fichier contenant une liste d'URL et produire un fichier HTML contenant un tableau (à 1 colonne) regroupant ces URLs.
- le dossier DUMP-TEXT regroupe les fichiers issus du traitement par lynx sur les pages aspirées du dossier PAGES-ASPIREES.
- le dossier PAGES-ASPIREES regroupe les fichiers issus de l'"aspiration" par wget des URLs contenues dans - - les fichiers situés dans le dossier URLs.
- le dossier PROGRAMMES regroupe l'ensemble des scripts construits pour ce projet.
- le dossier TABLEAUX regroupe l'ensemble des tableaux construits par les scripts, ces tableaux regroupant in fine 4 colonnes : l'url initiale, la page aspirée, le dump textuel, le contexte.
- le dossier URLs regroupe le ou les fichiers contenant les URLs à traiter etc.
Premier script : créer un tableau de liens
Code :
echo "Le fichier d'URL, SVP :";
read REP;
echo "Quel tableau à s'enregistrer les liens ?";
read tableau;
echo "<html><head><title>Tableaux de liens - Liberte</title></head><body>" > $tableau;
echo "<p align=\"center\"><hr color=\"ForestGreen \" width=\"90%\"/></p>" >> $tableau;
i=1;
for fic in `ls $REP`
{
echo "<table align=\"center\" border=\"1\"><tr><td colspan=\"2\" align=\"center\" bgcolor=\"black\"><font color=\"white\"><b>Tableau $i</b></font></td></tr>" >> $tableau;
# Variable i pour compter les URLs
j=1;
for nom in `cat $REP/$fic`
{
echo "<tr><td align=\"center\" width=\"90\">$j</td><td align=\"center\" width=\"100\"><a href=\"$nom\">$nom</a></td></tr>" >> $tableau;
let "j+=1";
}
echo "</table>" >> $tableau;
let "i+=1";
echo "<p align=\"center\"><hr color=\"ForestGreen \" width=\"90%\"/></p>" >> $tableau;
}
echo "</body></html>" >> $tableau;
echo "Done successfully!";
Codes :
echo "Donnez le nom du dossier : ";
read REP;
echo "Donnez le nom de fichier html où stocker ces liens : ";
read tablo;
echo "<html><head><title>tableaux de liens</title>" > $tablo;
echo "<meta http-equiv=\"Content-Type\" content=\"text/html;charset=ISO-8859-1\" /> " >> $tablo;
echo "<style>" >> $tablo;
echo "h1, h2, h3, p, td { font-family: Calibri, Verdana,sans-serif; } " >> $tablo;
echo "h4, h5 { margin: 0px; padding: 0px; } " >> $tablo;
echo "h1 {color: #000060; font-size: 16pt; font-weight: bold;} " >> $tablo;
echo "h2 {color: #000060; font-size: 14pt; font-weight: bold;} " >> $tablo;
echo "h3 {color: #000060; font-size: 12pt; font-weight: bold;} " >> $tablo;
echo "a:visited {text-decoration: none;color: blue;}" >> $tablo;
echo "a:link {text-decoration: none;color: blue;}" >> $tablo;
echo "a:hover{text-decoration: none;color: red;}" >> $tablo;
echo "</style>" >> $tablo;
echo "</head><body bgcolor=\"silver\">" >> $tablo;
eecho "<div style='border:solid windowtext .75pt;padding:4.0pt 4.0pt 4.0pt 4.0pt;background:#D7D5D2;margin-left:80px;margin-right:80px;'><blockquote>" >> $tablo;
echo "<h3><span style='background-color:#FC3;font-family:arial,helvetica,sans-serif;font-variant:small-caps;font-size:120%;padding:2px;border-right:1px solid #C90;border-bottom:1px solid #C90;'>Les TABLEAUX de données</span></h3>" >> $tablo;
#Variable pour compter les tableaux
j=1;
for fic in `ls $REP`
{
echo "<table bgcolor=\"white\" align=\"center\" border=\"1\"><tr><td colspan=\"7\" align=\"center\" bgcolor=\"black\"><font color=\"white\"><h4><b>Tableau n° $j</b></h4></font><small><span style='background-color:silver;font-family:arial,helvetica,sans-serif;font-variant:small-caps;font-size:120%;padding:2px;border-right:1px solid #C90;border-bottom:1px solid #C90;'>fichier : $fic</span></small></td></tr>" >> $tablo;
echo "<tr><td align=\"center\" width=\"50\"><b>n°URL</b></td><td align=\"center\" width=\"100\"><b>URL</b></td><td align=\"center\" width=\"100\"><b>PAGES ASPIREES</b></td><td align=\"center\" width=\"20\"><b>Ret. CURL</b></td><td align=\"center\" width=\"100\"><b>DUMP initial</b><br/><small>(non utf-8)</small></b></td><td align=\"center\" width=\"100\"><b>DUMP utf-8</b></td></tr>" >> $tablo;
# Variable i pour compter les URLs
i=1;
nbdump=0;
mkdir -p CONTEXTES/$j ;
mkdir -p DUMP-TEXT/$j ;
mkdir -p PAGES-ASPIREES/$j ;
for nom in `cat $REP/$fic`
{
echo "================================================================";
echo "==========TRAITEMENT : $nom ";
#------- on CURL et on determine l'encodage -----------------------------------------
curl -o ./PAGES-ASPIREES/$j/$i.html "$nom";
retourcurl=$? ;
contenupageaspiree=$(egrep -i -o "(400 )?Bad request|Moved Permanently|s interdit" ./PAGES-ASPIREES/$j/$i.html | sort -u);
if [[ $contenupageaspiree != "" ]]
then
retourcurl="<small>$retourcurl<br/>$contenupageaspiree</small>";
fi
echo "RETOUR CURL : $retourcurl";
if [[ $retourcurl == 0 ]]
then
encodage=$(file -i ./PAGES-ASPIREES/$j/$i.html | cut -d= -f2);
echo "ENCODAGE initial : $encodage";
#------- on continue en tenant compte de l'encodage fourni par curl---------------------
if [[ $encodage == "utf-8" ]]
then
lynx -dump -nolist -display_charset=$encodage ./PAGES-ASPIREES/$j/$i.html > ./DUMP-TXT/$j/$i-utf8.txt ;
echo "<tr><td align=\"center\" width=\"50\">$i</td><td align=\"center\" width=\"100\"><a href=\"$nom\">$nom</a></td><td align=\"center\" width=\"100\"><a href=\"../PAGES-ASPIREES/$j/$i.html\">$i.html</a></td><td align=\"center\" width=\"20\">$retourcurl</td><td align=\"center\" width=\"100\"> - </td><td align=\"center\" width=\"100\"><a href=\"../DUMP-TXT/$j/$i-utf8.txt\">$i-utf8.txt</a></td></tr>" >> $tablo;
else
#-----------------------------------------------------
# la page n'est pas en utf-8, on cherche un charset...
#-----------------------------------------------------echo "on cherche un charset dans la page aspiree...";
if egrep -qi "(charset ?=.*?(\"|\')|encoding ?=.*?(\"|\'))" ./PAGES-ASPIREES/$j/$i.html ;
then
#----------------------------------------------
# on a peut-etre trouve un charset.....
#----------------------------------------------
echo "Presence d'un charset...";
encodage=$(egrep -m 1 -o '(((utf|UTF)-(8|16|32))|(gb|GB)(k|K|2312|18030)|(iso|ISO|Iso)-8859-(\w)(\w)?|(WINDOWS|windows)-1252|(WINDOWS|windows)-1256|((m|M)(a|A)(c|C)(R|r)(O|o)(M|m)(a|A)(n|N))|us-ascii)' ./PAGES-ASPIREES/$j/$i.html | sort -u) ;
echo "charset extrait : $encodage ";
#-------------------------------------------------------------------
# avant de continuer on va vérifier si le charset est connu de iconv
#-------------------------------------------------------------------
VERIFENCODAGEDANSICONV=$(iconv -l | egrep -io $encodage | sort -u);
if [[ $VERIFENCODAGEDANSICONV == "" ]]
then
#-------------------------------------------
# le charset n'est pas connu de iconv : on fait rien....
#-------------------------------------------
echo "VERIF : <$VERIFENCODAGEDANSICONV> ==> inconnu par inconv, on ne fait rien"
echo "<tr><td align=\"center\" width=\"50\">$i</td><td align=\"center\" width=\"100\"><a href=\"$nom\">$nom</a></td><td align=\"center\" width=\"100\"><a href=\"../PAGES-ASPIREES/$j/$i.html\">$i.html</a></td><td align=\"center\" width=\"20\">$retourcurl</td><td align=\"center\" width=\"100\" bgcolor=\"yellow\"><small>Encodage<br/>non détecté</small></td><td align=\"center\" width=\"100\" bgcolor=\"yellow\"><small>Encodage<br/>non détecté</small></td><td align=\"center\" width=\"100\" bgcolor=\"yellow\"><small>Encodage<br/>non détecté</small></td></tr>" >> $tablo;
else
#-------------------------------------------
# le charset extrait est connu de iconv : on lynxe et on dump !!!
#-------------------------------------------
echo "VERIF : <$VERIFENCODAGEDANSICONV> ==> connu par inconv, c'est parti ==> lynx, iconv..."
lynx -dump -nolist -display_charset=$encodage ./PAGES-ASPIREES/$j/$i.html > ./DUMP-TXT/$j/$i.txt ;
echo "ENCODAGE final : $encodage (avant conversion vers utf-8)";
iconv -f $encodage -t utf-8 ./DUMP-TXT/$j/$i.txt > ./DUMP-TXT/$j/$i-utf8.txt
echo "<tr><td align=\"center\" width=\"50\">$i</td><td align=\"center\" width=\"100\"><a href=\"$nom\">$nom</a></td><td align=\"center\" width=\"100\"><a href=\"../PAGES-ASPIREES/$j/$i.html\">$i.html</a></td><td align=\"center\" width=\"20\">$retourcurl</td><td align=\"center\" width=\"100\"><a href=\"../DUMP-TXT/$j/$i.txt\">$i.txt</a><br/><small>($encodage)</small></td><td align=\"center\" width=\"100\"><a href=\"../DUMP-TXT/$j/$i-utf8.txt\">$i-utf8.txt</a></td></tr>" >> $tablo;
fi
else
echo "Pas de charset detecte : on ne fait rien pour le DUMP... ";
echo "<tr><td align=\"center\" width=\"50\">$i</td><td align=\"center\" width=\"100\"><a href=\"$nom\">$nom</a></td><td align=\"center\" width=\"100\"><a href=\"../PAGES-ASPIREES/$j/$i.html\">$i.html</a></td><td align=\"center\" width=\"20\">$retourcurl</td><td align=\"center\" width=\"100\" bgcolor=\"yellow\"><small>Encodage<br/>non détecté</small></td><td align=\"center\" width=\"100\" bgcolor=\"yellow\"><small>Encodage<br/>non détecté</small></td></tr>" >> $tablo;
fi
fi
# fin curl OK
else
echo "<tr><td align=\"center\" width=\"50\">$i</td><td align=\"center\" width=\"100\"><a href=\"$nom\">$nom</a></td><td align=\"center\" width=\"100\" bgcolor=\"red\">Page non aspiree...</td><td align=\"center\" width=\"20\">$retourcurl</td><td align=\"center\" width=\"100\" bgcolor=\"red\"><small>Page<br/>non \"aspirée\"</small></td><td align=\"center\" width=\"100\" bgcolor=\"red\"><small>Page<br/>non \"aspirée\"</small></td></tr>" >> $tablo;
fi
let "i+=1";
}
echo "</table>" >> $tablo;
let "j+=1";
echo "<p align=\"center\"><hr color=\"blue\" width=\"50%\"/></p>" >> $tablo;
}
echo "</body></html>" >> $tablo;
Quatrième script : plusieurs tableaux de liens avec 3 colonnes (URL, fichier aspiré, dump)
Ce qu’on va faire dans cette section est de 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 :
- Ces URLs
- Les pages aspirées correspondantes
- Les DUMPS des pages aspirées obtenus avec lynx. Etablir les liens vers les 3 ressources (URL, page locale, dump)
Codes :
#!/bin/bash
echo "Donnez le nom du dossier contenant les fichiers de liens http : ";
read dossier;
echo "Donnez le nom du fichier html où stocker ces liens dans des tableaux : ";
read tablo;
echo "<html><head><title>tableau de liens</title></head><body>" > $tablo;
i=1
for fichier in `ls $dossier`
{
echo "<table border=1>" >> $tablo;
echo "<tr><td align="center" bgcolor=\"silver\" colspan=\"3\"><b>Fichier $fichier</b></td></tr>" >> $tablo;
for nom in `cat $dossier/$fichier`
{
wget -O ./PAGES-ASPIREES/$i.html $nom
lynx -dump $nom > ./DUMP-TEXT/$i.txt
echo "<tr><td><a href=\"$nom\">$nom</a></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" ;
}
echo "</table>" >> $tablo;
echo "<br>" >> $tablo;
}
echo "</body></html>" >> $tablo;
L’objectif de cette partie est de 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 :
- ces URLs
- les pages aspirées correspondantes
- les DUMPS des pages aspirées obtenus avec lynx
- les contextes obtenus avec egrep. Etablir les liens vers les 4 ressources (URL, page locale, dump, contexte)
Codes :
echo "Donnez le nom du dossier : ";
read REP;
echo "Donnez le nom de fichier html où stocker ces liens : ";
read tablo;
echo "Quel est le motif ?";
read motif;
echo "<html><head><title>Tableaux de liens : La vie du mot Liberté</title>" > $tablo;
echo "<meta http-equiv=\"Content-Type\" content=\"text/html;charset=Unicode\\" /> " >> $tablo;
echo "<style>" >> $tablo;
echo "h1, h2, h3, p, td { font-family: Calibri, Verdana,sans-serif; } " >> $tablo;
echo "h4, h5 { margin: 0px; padding: 0px; } " >> $tablo;
echo "h1 {color: #000060; font-size: 16pt; font-weight: bold;} " >> $tablo;
echo "h2 {color: #000060; font-size: 14pt; font-weight: bold;} " >> $tablo;
echo "h3 {color: #000060; font-size: 12pt; font-weight: bold;} " >> $tablo;
echo "a:visited {text-decoration: none;color: blue;}" >> $tablo;
echo "a:link {text-decoration: none;color: blue;}" >> $tablo;
echo "a:hover{text-decoration: none;color: red;}" >> $tablo;
echo "</style>" >> $tablo;
echo "</head><body bgcolor=\"silver\">" >> $tablo;
echo "<div style='border:solid windowtext .75pt;padding:4.0pt 4.0pt 4.0pt 4.0pt;background:#D7D5D2;margin-left:80px;margin-right:80px;'><blockquote>" >> $tablo;
echo "<h3><span style='background-color:#FC3;font-family:arial,helvetica,sans-serif;font-variant:small-caps;font-size:120%;padding:2px;border-right:1px solid #C90;border-bottom:1px solid #C90;'>Les Tableaux de données <br> Le motif : $motif </span></h3>" >> $tablo;
#Variable pour compter les tableaux
j=1;
for fic in `ls $REP`
{
echo "<table bgcolor=\"white\" align=\"center\" border=\"1\"><tr><td colspan=\"9\" align=\"center\" bgcolor=\"black\"><font color=\"white\"><h4><b>Tableau n° $j</b></h4></font><small><span style='background-color:silver;font-family:arial,helvetica,sans-serif;font-variant:small-caps;font-size:120%;padding:2px;border-right:1px solid #C90;border-bottom:1px solid #C90;'>fichier : $fic</span></small></td></tr>" >> $tablo;
echo "<tr><td align=\"center\" width=\"50\"><b>n°URL</b></td><td align=\"center\" width=\"100\"><b>URL</b></td><td align=\"center\" width=\"100\"><b>PAGES ASPIREES</b></td><td align=\"center\" width=\"20\"><b>Ret. CURL</b></td><td align=\"center\" width=\"100\"><b>DUMP initial</b><br/><small>(non utf-8)</small></b></td><td align=\"center\" width=\"100\"><b>DUMP utf-8</b></td><td align=\"center\" width=\"100\"><b>CONTEXTES</b></td><td align=\"center\" width=\"100\"><b>CONTEXTES<br/>HTML</b></td><td align=\"center\" width=\"100\"><b>NB Occur</b></td></tr>" >> $tablo;
# Variable i pour compter les URLs
i=1;
nbdump=0;
mkdir -p CONTEXTES/$j ;
mkdir -p DUMP-TEXT/$j ;
mkdir -p PAGES-ASPIREES/$j ;
for nom in `cat $REP/$fic`
{
echo "================================================================";
echo "==========TRAITEMENT : $nom ";
#------- on CURL et on determine l'encodage -----------------------------------------
curl -o ./PAGES-ASPIREES/$j/$i.html "$nom";
retourcurl=$? ;
contenupageaspiree=$(egrep -i -o "(400 )?Bad request|Moved Permanently|s interdit|Not Acceptable" ./PAGES-ASPIREES/$j/$i.html | sort -u);
if [[ $contenupageaspiree != "" ]]
then
retourcurl="<span style='background-color:black;color:white;font-family:arial,helvetica,sans-serif;font-variant:small-caps;font-size:120%;padding:2px;border-right:1px solid #C90;border-bottom:1px solid #C90;'>$retourcurl<br/>BAD</span>";
fi
echo "RETOUR CURL : $retourcurl";
if [[ $retourcurl == 0 ]]
then
encodage=$(file -i ./PAGES-ASPIREES/$j/$i.html | cut -d= -f2);
echo "ENCODAGE initial : $encodage";
#------- on continue en tenant compte de l'encodage fourni par curl---------------------
if [[ $encodage == "utf-8" ]]
then
lynx -dump -nolist -display_charset=$encodage ./PAGES-ASPIREES/$j/$i.html > ./DUMP-TXT/$j/$i-utf8.txt ;
egrep -i "\b$motif\b" ./DUMP-TXT/$j/$i-utf8.txt > ./CONTEXTES/$j/$i-utf8.txt ;
nbOccur=??;
nbOccur=$(egrep -o -i "\b$motif\b" ./DUMP-TXT/$j/$i-utf8.txt | wc -l );
perl ./PROGRAMMES/minigrepmultilingue-v2.2-regexp/minigrepmultilingue.pl "UTF-8" ./DUMP-TXT/$j/$i-utf8.txt ./PROGRAMMES/minigrepmultilingue-v2.2-regexp/motif-regexp.txt ;
mv resultat-extraction.html ./CONTEXTES/$j/$i-utf8.html ;
echo "<tr><td align=\"center\" width=\"50\">$i</td><td align=\"center\" width=\"100\"><a href=\"$nom\">$nom</a></td><td align=\"center\" width=\"100\"><a href=\"../PAGES-ASPIREES/$j/$i.html\">$i.html</a></td><td align=\"center\" width=\"20\">$retourcurl</td><td align=\"center\" width=\"100\"> - </td><td align=\"center\" width=\"100\"><a href=\"../DUMP-TXT/$j/$i-utf8.txt\">$i-utf8.txt</a></td><td align=\"center\" width=\"100\"><a href=\"../CONTEXTES/$j/$i-utf8.txt\">$i-utf8.txt</a></td><td align=\"center\" width=\"100\" ><a href=\"../CONTEXTES/$j/$i-utf8.html\">$i-utf8.html</a></td><td align=\"center\" bgcolor=\"yellow\"><span style='background-color:red;font-family:arial,helvetica,sans-serif;font-variant:small-caps;font-size:120%;padding:2px;border-right:1px solid #C90;border-bottom:1px solid #C90;'>$nbOccur</span></td></tr>" >> $tablo;
cat ./CONTEXTES/$j/$i-utf8.txt >> ./FICHIERGLOBAUX/CONTEXTES-GLOBAUX_$j.txt ;
cat ./DUMP-TXT/$j/$i-utf8.txt >> ./FICHIERGLOBAUX/DUMP-GLOBAUX_$j.txt ;
let "nbdump+=1";
else
VERIFENCODAGEDANSICONV=$(iconv -l | egrep -io $encodage | sort -u);
if [[ $VERIFENCODAGEDANSICONV != "" ]]
then
#-------------------------------------------
# le charset extrait est connu de iconv : on lynxe et on dump !!!
#-------------------------------------------
echo "VERIF : <$VERIFENCODAGEDANSICONV> ==> connu par inconv, c'est parti ==> lynx, iconv..."
lynx -dump -nolist -display_charset=$encodage ./PAGES-ASPIREES/$j/$i.html > ./DUMP-TXT/$j/$i.txt ;
echo "ENCODAGE final : $encodage (avant conversion vers utf-8)";
iconv -f $encodage -t utf-8 ./DUMP-TXT/$j/$i.txt > ./DUMP-TXT/$j/$i-utf8.txt
egrep -i "\b$motif\b" ./DUMP-TXT/$j/$i-utf8.txt > ./CONTEXTES/$j/$i-utf8.txt ;
nbOccur=??;
nbOccur=$(egrep -o -i "\b$motif\b" ./DUMP-TXT/$j/$i-utf8.txt | wc -l );
perl ./PROGRAMMES/minigrepmultilingue-v2.2-regexp/minigrepmultilingue.pl "UTF-8" ./DUMP-TXT/$j/$i-utf8.txt ./PROGRAMMES/minigrepmultilingue-v2.2-regexp/motif-regexp.txt ;
mv resultat-extraction.html ./CONTEXTES/$j/$i-utf8.html ;
echo "<tr><td align=\"center\" width=\"50\">$i</td><td align=\"center\" width=\"100\"><a href=\"$nom\">$nom</a></td><td align=\"center\" width=\"100\"><a href=\"../PAGES-ASPIREES/$j/$i.html\">$i.html</a></td><td align=\"center\" width=\"20\">$retourcurl</td><td align=\"center\" width=\"100\"><a href=\"../DUMP-TXT/$j/$i.txt\">$i.txt</a><br/><small>($encodage)</small></td><td align=\"center\" width=\"100\"><a href=\"../DUMP-TXT/$j/$i-utf8.txt\">$i-utf8.txt</a></td><td align=\"center\" width=\"100\"><a href=\"../CONTEXTES/$j/$i-utf8.txt\">$i-utf8.txt</a></td><td align=\"center\" width=\"100\"><a href=\"../CONTEXTES/$j/$i-utf8.html\">$i-utf8.html</a></td><td align=\"center\" bgcolor=\"yellow\"><span style='background-color:red;font-family:arial,helvetica,sans-serif;font-variant:small-caps;font-size:120%;padding:2px;border-right:1px solid #C90;border-bottom:1px solid #C90;'>$nbOccur</span></td></tr>" >> $tablo;
cat ./CONTEXTES/$j/$i-utf8.txt >> ./FICHIERGLOBAUX/CONTEXTES-GLOBAUX_$j.txt ;
cat ./DUMP-TXT/$j/$i-utf8.txt >> ./FICHIERGLOBAUX/DUMP-GLOBAUX_$j.txt ;
let "nbdump+=1";
else
#-----------------------------------------------------
# la page n'est pas en utf-8 et son encodage detecte par file n'est pas connu de iconv, on cherche un charset...
#-----------------------------------------------------echo "on cherche un charset dans la page aspiree...";
if egrep -i " ==> inconnu par inconv, on ne fait rien"
echo "<tr><td align=\"center\" width=\"50\">$i</td><td align=\"center\" width=\"100\"><a href=\"$nom\">$nom</a></td><td align=\"center\" width=\"100\"><a href=\"../PAGES-ASPIREES/$j/$i.html\">$i.html</a></td><td align=\"center\" width=\"20\">$retourcurl</td><td align=\"center\" width=\"100\" bgcolor=\"yellow\"><small>Encodage<br/>non détecté</small></td><td align=\"center\" width=\"100\" bgcolor=\"yellow\"><small>Encodage<br/>non détecté</small></td><td align=\"center\" width=\"100\" bgcolor=\"yellow\"><small>Encodage<br/>non détecté</small></td><td align=\"center\"> - </td><td align=\"center\"> - </td><td align=\"center\"> - </td></tr>" >> $tablo;
else
#-------------------------------------------
# le charset extrait est connu de iconv : on lynxe et on dump !!!
#-------------------------------------------
echo "VERIF : <$VERIFENCODAGEDANSICONV> ==> connu par inconv, c'est parti ==> lynx, iconv..."
lynx -dump -nolist -display_charset=$encodage ./PAGES-ASPIREES/$j/$i.html > ./DUMP-TXT/$j/$i.txt ;
echo "ENCODAGE final : $encodage (avant conversion vers utf-8)";
iconv -f $encodage -t utf-8 ./DUMP-TXT/$j/$i.txt > ./DUMP-TXT/$j/$i-utf8.txt
egrep -i "\b$motif\b" ./DUMP-TXT/$j/$i-utf8.txt > ./CONTEXTES/$j/$i-utf8.txt ;
nbOccur=??;
nbOccur=$(egrep -o -i "\b$motif\b" ./DUMP-TXT/$j/$i-utf8.txt | wc -l );
perl ./PROGRAMMES/minigrepmultilingue-v2.2-regexp/minigrepmultilingue.pl "UTF-8" ./DUMP-TXT/$j/$i-utf8.txt ./PROGRAMMES/minigrepmultilingue-v2.2-regexp/motif-regexp.txt ;
mv resultat-extraction.html ./CONTEXTES/$j/$i-utf8.html ;
echo "<tr><td align=\"center\" width=\"50\">$i</td><td align=\"center\" width=\"100\"><a href=\"$nom\">$nom</a></td><td align=\"center\" width=\"100\"><a href=\"../PAGES-ASPIREES/$j/$i.html\">$i.html</a></td><td align=\"center\" width=\"20\">$retourcurl</td><td align=\"center\" width=\"100\"><a href=\"../DUMP-TXT/$j/$i.txt\">$i.txt</a><br/><small>($encodage)</small></td><td align=\"center\" width=\"100\"><a href=\"../DUMP-TXT/$j/$i-utf8.txt\">$i-utf8.txt</a></td><td align=\"center\" width=\"100\"><a href=\"../CONTEXTES/$j/$i-utf8.txt\">$i-utf8.txt</a></td><td align=\"center\" width=\"100\"><a href=\"../CONTEXTES/$j/$i-utf8.html\">$i-utf8.html</a></td><td align=\"center\" bgcolor=\"yellow\"><span style='background-color:red;font-family:arial,helvetica,sans-serif;font-variant:small-caps;font-size:120%;padding:2px;border-right:1px solid #C90;border-bottom:1px solid #C90;'>$nbOccur</span></td></tr>" >> $tablo;
cat ./CONTEXTES/$j/$i-utf8.txt >> ./FICHIERGLOBAUX/CONTEXTES-GLOBAUX_$j.txt ;
cat ./DUMP-TXT/$j/$i-utf8.txt >> ./FICHIERGLOBAUX/DUMP-GLOBAUX_$j.txt ;
let "nbdump+=1";
fi
else
echo "Pas de charset detecte : on ne fait rien pour le DUMP... ";
echo "<tr><td align=\"center\" width=\"50\">$i</td><td align=\"center\" width=\"100\"><a href=\"$nom\">$nom</a></td><td align=\"center\" width=\"100\"><a href=\"../PAGES-ASPIREES/$j/$i.html\">$i.html</a></td><td align=\"center\" width=\"20\">$retourcurl</td><td align=\"center\" width=\"100\" bgcolor=\"yellow\"><small>Encodage<br/>non détecté</small></td><td align=\"center\" width=\"100\" bgcolor=\"yellow\"><small>Encodage<br/>non détecté</small></td><td align=\"center\"> - </td><td align=\"center\"> - </td><td align=\"center\"> - </td></tr>" >> $tablo;
fi
fi
fi
# fin curl OK
else
echo "<tr><td align=\"center\" width=\"50\">$i</td><td align=\"center\" width=\"100\"><a href=\"$nom\">$nom</a></td><td align=\"center\" width=\"100\" bgcolor=\"red\"> - </td><td align=\"center\" width=\"20\">$retourcurl</td><td align=\"center\" width=\"100\" bgcolor=\"red\"> - </td><td align=\"center\" width=\"100\" bgcolor=\"red\"> - </td><td align=\"center\"> - </td><td align=\"center\"> - </td><td align=\"center\"> - </td></tr>" >> $tablo;
fi
let "i+=1";
}
echo "<tr><td align=\"center\" colspan=\"4\" bgcolor=\"silver\"> </td><td align=\"center\" width=\"100\"><a href="../FICHIERGLOBAUX/DUMP-GLOBAUX_$j.txt">Fichier DUMP<br/>global</a><br/><small>$nbdump fichier(s)</small></td><td align=\"center\" width=\"100\"><a href="../FICHIERGLOBAUX/CONTEXTES-GLOBAUX_$j.txt">Fichier CONTEXTES<br/>global</a><br/><small>$nbdump fichier(s)</small></td><td align=\"center\" bgcolor=\"silver\"> </td><td colspan="3" bgcolor=\"silver\"></td></tr>" >> $tablo;
echo "</table>" >> $tablo;
let "j+=1";
echo "<p align=\"center\"><hr color=\"blue\" width=\"50%\"/></p>" >> $tablo;
}
echo "</body></html>" >> $tablo;
Dernier script :
Voilà ce qu'on a fait comme le dernier script :
Codes finaux :
#!/usr/bin/bash
echo "fichier des liens"
echo "chemin de sortie"
echo "chemin des motifs"
read motif
for fichier in `ls $fichierDesUrls`
{
i=1
nbdump=0
echo "<html><head><meta charset="UTF-8"><title>tableau des liens</title><meta charset="UTF-8"></head><body>" >> $fichierDeSortie/$fichier.html
echo "<table width=\"80%\" align=\"center\" border=\"4\" bordercolor=\"orange\">" >> $fichierDeSortie/$fichier.html
echo "<tr><td align=\"center\" colspan=\"11\" bgcolor=\"white\"><span style=\"color:red\"><b>Fichier url : $fichierDesUrls/$fichier | Motif : liberté </b> </span></td></tr>" >> $fichierDeSortie/$fichier.html
echo "<tr bgcolor=\"pink\"><td align=\"center\">Num des urls</td><td align=\"center\">Adresse url</td><td align=\"center\">Pages Aspirées</td><td align=\"center\">Retour CURL</td><td align=\"center\">Encodage initial</td><td align=\"center\">Dump(encodage initial)</td><td align=\"center\">Dump(utf8)</td><td align=\"center\">Contexte en utf8</td><td align=\"center\">Contexte en HTML</td><td align=\"center\">Fréquences du mot<br/>dans DUMP</td><td align=\"center\">Index Dump</td></tr>" >> $fichierDeSortie/$fichier.html
for ligne in `cat $fichierDesUrls/$fichier`
{
wget -O ./PAGES-ASPIREES/$fichier-$i.html "$ligne";
retourcurl=$?;
conPagAsp=$(egrep -i -o "(400 )?Bad request|Moved Permanently|Not Acceptable|Access Denied|Object Moved|The document has moved" ./PAGES-ASPIREES/$fichier-$i.html | sort -u)
if [[ $conPagAsp != "" ]]
then
retourcurl="<span style='background-color:red;color:white;font-family:arial,helvetica,sans-serif;font-variant:small-caps;font-size:120%;padding:2px;border-right:1px solid #C90;border-bottom:1px solid #C90'>$retourcurl</span><br/><small>Error : $conPagAsp</small>"
fi
if [[ $retourcurl == 0 ]]
then
encodage=$(./PROGRAMMES/detect-encoding/detect-encoding.exe ./PAGES-ASPIREES/$fichier-$i.html | tr "a-z" "A-Z" | sed "s/\n//")
if [[ $encodage == "UTF-8" ]]
then
lynx -dump -nolist -display_charset="$encodage" $ligne > ./DUMP-TEXT/$fichier-$i-utf8.txt
egrep -o "\w+" ./DUMP-TEXT/$fichier-$i-utf8.txt | sort | uniq -c | sort -r > ./DUMP-TEXT/$fichier-$i-index.txt
egrep -wE `cat $motif` ./DUMP-TEXT/$fichier-$i-utf8.txt > ./CONTEXTES/$fichier-$i-utf8.txt
nbOccur=$(egrep -ico `cat $motif` ./DUMP-TEXT/$fichier-$i-utf8.txt)
echo "<tr><td align=\"center\">$i</td><td align=\"center\"><a href=\"$ligne\">$ligne</a></td><td align=\"center\"><a href=\"../PAGES-ASPIREES/$fichier-$i.html\">$i</a></td><td align=\"center\">$retourcurl</td><td align=\"center\">$encodage<br/>(detect-encodage)</td><td align=\"center\">-</td><td align=\"center\"><a href=\"../DUMP-TEXT/$fichier-$i-utf8.txt\">dump-$i</a></td><td align=\"center\"><a href=\"../CONTEXTES/$fichier-$i-utf8.txt\">contexte-$i</a></td><td align=\"center\"><a href=\"../CONTEXTES/$fichier-$i-utf8.html\">contexte-$i</a></td><td align=\"center\">$nbOccur</td><td align=\"center\"><a href=\"../DUMP-TEXT/$fichier-$i-index.txt\">$fichier-$i-index</a></td></tr>" >> $fichierDeSortie/$fichier.html
echo "<file=$nbdump>" >> ./FICHIERGLOBAUX/CONTEXTES-GLOBAUX/$fichier.txt
echo "<file=$nbdump>" >> ./FICHIERGLOBAUX/DUMP-GLOBAUX/$fichier.txt
cat ./CONTEXTES/$fichier-$i-utf8.txt >> ./FICHIERGLOBAUX/CONTEXTES-GLOBAUX/$fichier.txt
cat ./DUMP-TEXT/$fichier-$i-utf8.txt >> ./FICHIERGLOBAUX/DUMP-GLOBAUX/$fichier.txt
cat ./DUMP-TEXT/$fichier-$i-index.txt >> ../FICHIERGLOBAUX/index-dump-$fichier.txt
let "nbdump+=1"
let "i+=1"
else
VERIFENCODAGEDANSICONV=$(iconv -l | egrep -io $encodage | sort -u)
if [[ $VERIFENCODAGEDANSICONV == "" ]]
then
lynx -dump -nolist -display_charset="$encodage" $ligne > ./DUMP-TEXT/$fichier-$i.txt
iconv -f $encodage -t UTF-8 ./DUMP-TEXT/$fichier-$i.txt > ./DUMP-TEXT/$fichier-$i-utf8.txt
egrep -o "\w+" ./DUMP-TEXT/$fichier-$i-utf8.txt | sort | uniq -c | sort -r > ./DUMP-TEXT/$fichier-$i-index.txt
egrep -wE `cat $motif` ./DUMP-TEXT/$fichier-$i-utf8.txt > ./CONTEXTES/$fichier-$i-utf8.txt
nbOccur=$(egrep -ico `cat $motif` ./DUMP-TEXT/$fichier-$i-utf8.txt)
echo "<tr><td align=\"center\">$i</td><td align=\"center\"><a href=\"$ligne\">$ligne</a></td><td align=\"center\"><a href=\"../PAGES-ASPIREES/$fichier-$i.html\">$i</a></td><td align=\"center\">$retourcurl</td><td align=\"center\">$encodage<br/>(detect-encodage)</td><td align=\"center\"><a href=\"../DUMP-TEXT/$fichier-$i.txt\">dump-$i</a></td><td align=\"center\"><a href=\"../DUMP-TEXT/$fichier-$i-utf8.txt\">dump-$i</a></td><td align=\"center\"><a href=\"../CONTEXTES/$fichier-$i-utf8.txt\">contexte-$i</a></td><td align=\"center\"><a href=\"../CONTEXTES/$fichier-$i-utf8.html\">contexte-$i</a></td><td align=\"center\">$nbOccur</td><td align=\"center\"><a href=\"../DUMP-TEXT/$fichier-$i-index.txt\">$fichier-$i-index</a></td></tr>" >> $fichierDeSortie/$fichier.html
echo "<file=$nbdump>" >> ./FICHIERGLOBAUX/CONTEXTES-GLOBAUX/$fichier.txt
echo "<file=$nbdump>" >> ./FICHIERGLOBAUX/DUMP-GLOBAUX/$fichier.txt
cat ./CONTEXTES/$fichier-$i-utf8.txt >> ./FICHIERGLOBAUX/CONTEXTES-GLOBAUX/$fichier.txt
cat ./DUMP-TEXT/$fichier-$i-utf8.txt >> ./FICHIERGLOBAUX/DUMP-GLOBAUX/$fichier.txt
cat ./DUMP-TEXT/$fichier-$i-index.txt >> ../FICHIERGLOBAUX/index-dump-$fichier.txt
let "nbdump+=1"
let "i+=1"
else
if
egrep -i "<meta.*charset" ./PAGES-ASPIREES/$fichier-$i.html
then
encodage=$(egrep -m 1 -o '(((utf|UTF)-(8|16|32))|(gb|GB)(k|K|2312|18030)|
(iso|ISO|Iso)-8859-(\w)(\w)?|(WINDOWS|windows)-1252|(WINDOWS|windows)-1256|
((m|M)(a|A)(c|C)(R|r)(O|o)(M|m)(a|A)(n|N))|us-ascii)' ./PAGES-ASPIREES/$fichier-$i | sort -u)
VERIFENCODAGEDANSICONV=$(iconv -l | egrep -io $encodage | sort -u)
if [[ $VERIFENCODAGEDANSICONV == "" ]]
then
echo "<tr><td align=\"center\">$i</td><td align=\"center\"><a href=\"$ligne\">$ligne</a></td><td align=\"center\"><a href=\"../PAGES-ASPIREES/$fichier-$i.html\">$i</a></td><td align=\"center\">"Encodage non détecté"</td><td align=\"center\">"Encodage non détecté"</td><td align=\"center\">"Encodage non détecté"</td><td align=\"center\">"Encodage non détecté"</td><td align=\"center\">"Encodage non détecté"</td><td align=\"center\">"Encodage non détecté"</td><td align=\"center\">"Encodage non détecté"</td><td align=\"center\">"Encodage non détecté"" >> $fichierDeSortie/$fichier.html
let "i+=1"
else
lynx -dump -nolist -display_charset="$encodage" $ligne > ./DUMP-TEXT/$fichier-$i.txt
iconv -f $encodage -t UTF-8 ./DUMP-TEXT/$fichier-$i.txt > ./DUMP-TEXT/$fichier-$i-utf8.txt
egrep -o "\w+" ./DUMP-TEXT/$fichier-$i-utf8.txt | sort | uniq -c | sort -r > ./DUMP-TEXT/$fichier-$i-index.txt
egrep -wE `cat $motif` ./DUMP-TEXT/$fichier-$i-utf8.txt > ./CONTEXTES/$fichier-$i-utf8.txt
nbOccur=$(egrep -ico `cat $motif` ./DUMP-TEXT/$fichier-$i-utf8.txt)
echo "<tr><td align=\"center\">$i</td><td align=\"center\"><a href=\"$ligne\">$ligne</a></td><td align=\"center\"><a href=\"../PAGES-ASPIREES/$fichier-$i.html\">$i</a></td><td align=\"center\">$retourcurl</td><td align=\"center\">$encodage<br/>(detect-encodage)</td><td align=\"center\"><a href=\"../DUMP-TEXT/$fichier-$i.txt\">dump-$i</a></td><td align=\"center\"><a href=\"../DUMP-TEXT/$fichier-$i-utf8.txt\">dump-$i</a></td><td align=\"center\"><a href=\"../CONTEXTES/$fichier-$i-utf8.txt\">contexte-$i</a></td><td align=\"center\"><a href=\"../CONTEXTES/$fichier-$i-utf8.html\">contexte-$i</a></td><td align=\"center\">$nbOccur</td><td align=\"center\"><a href=\"../DUMP-TEXT/$fichier-$i-index.txt\">$fichier-$i-index</a></td></tr>" >> $fichierDeSortie/$fichier.html
echo "<file=$nbdump>" >> ./FICHIERGLOBAUX/CONTEXTES-GLOBAUX/$fichier.txt
echo "<file=$nbdump>" >> ./FICHIERGLOBAUX/DUMP-GLOBAUX/$fichier.txt
cat ./CONTEXTES/$fichier-$i-utf8.txt >> ./FICHIERGLOBAUX/CONTEXTES-GLOBAUX/$fichier.txt
cat ./DUMP-TEXT/$fichier-$i-utf8.txt >> ./FICHIERGLOBAUX/DUMP-GLOBAUX/$fichier.txt
cat ./DUMP-TEXT/$fichier-$i-index.txt >> ../FICHIERGLOBAUX/index-dump-$fichier.txt
let "nbdump+=1"
let "i+=1"
fi
fi
fi
fi
fi
}
echo "<tr><td align=\"center\" colspan=\"6\" bgcolor=\"silver\"> </td><td align=\"center\" width=\"100\"><a href="../FICHIERGLOBAUX/DUMP-GLOBAUX/$fichier.txt">Fichier DUMP<br/>global</a><br/><small>$nbdump fichier(s)</small></td><td align=\"center\" width=\"100\"><a href="../FICHIERGLOBAUX/CONTEXTES-GLOBAUX/$fichier.txt">Fichier CONTEXTES<br/>global</a><br/><small>$nbdump fichier(s)</small></td><td colspan="3" bgcolor=\"silver\"></td></tr>" >> $fichierDeSortie/$fichier.html
echo "<tr><td align=\"center\" colspan=\"6\" bgcolor=\"silver\"> </td><td align=\"center\" width=\"100\"><a href="../FICHIERGLOBAUX/index-dump-$fichier.txt">Index DUMP<br/>global</a><br/><small>$nbdump fichier(s)</small></td><td align=\"center\" width=\"100\"><a href="../FICHIERGLOBAUX/index-contexte/$fichier.txt">Index CONTEXTES<br/>global</a><br/><small>$nbdump fichier(s)</small></td><td colspan="3" bgcolor=\"silver\"></td></tr>" >> $fichierDeSortie/$fichier.html
echo "</table>" >> $fichierDeSortie/$fichier.html
echo "<hr width=\"50%\" color=\"blue\"/>" >> $fichierDeSortie/$fichier.html
}
echo ">/body>" >> $fichierDeSortie/$fichier.html
echo ">/html<" >> $fichierDeSortie/$fichier.html
N'oublions pas que pour éviter de répeter chaque fois les répertoires, on a retiré les adresses des répertoires chaque fois d'un autre fichier.