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
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°$j<br/ align="center"> Fichier: $fichier_url</th>
</tr>" >> $fichier_tableau;
# 1ère ligne du Tableau
echo "<tr><td bgcolor=\"black\" align="center">N°URL</td><td bgcolor=\"black\" align="center">URL</td><td bgcolor=\"black\" align="center">Pages aspiré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> - </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étecté</td><td bgcolor=\"blue\">Encodage<br/>non détecté</td><td bgcolor=\"blue\">Encodage<br/>non détecté</td><td bgcolor=\"blue\">Encodage<br/>non détecté</td><td bgcolor=\"blue\">Encodage<br/>non détecté</td><td bgcolor=\"blue\">Encodage<br/>non détecté</td><td bgcolor=\"blue\">Encodage<br/>non détecté</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étecté</td><td bgcolor=\"blue\">Encodage<br/>non détecté</td><td bgcolor=\"blue\">Encodage<br/>non détecté</td><td bgcolor=\"blue\">Encodage<br/>non détecté</td><td bgcolor=\"blue\">Encodage<br/>non détecté</td><td bgcolor=\"blue\">Encodage<br/>non détecté</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ée</td><td bgcolor=\"red\">$retourwget</td><td bgcolor=\"red\">Page non aspirée</td><td bgcolor=\"red\">Page non aspirée</td><td bgcolor=\"red\">Page non aspirée</td><td bgcolor=\"red\">Page non aspirée</td><td bgcolor=\"red\">Page non aspirée</td><td bgcolor=\"red\">Page non aspiré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\"> </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> </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