Formulaire de contact

 

Récapitulatif de la séance 5 (18/10/2017)

 

PLAN


  2 outils

  3 commandes

  n tableaux de 3 colonnes



I Présentation de 2 outils

    GroMoteur et Le Trameur

1.1 GroMoteur 

    Outil de création de corpus. Il permet de crawler des pages à partir des listes d'URLs. En fait, la première phase de notre projet est de simulier en gros un GroMoteur.

1.2 Le Trameur

    Nous allons utiliser cet outil pour analyser notre corpus à la fin du projet.
    Cette séance, il s'agit notamment de tester nos fichier d'urls avec le module petitMoteur dans Le Trameur.
    Nous l'avons testé sur Windows.

   




    Après avoir récupéré ce fichier de textes aspirés, nous modifions le "passage à la ligne" du format Windows au format Unix pour des traîtements éventuels.
    Les textes aspirés sont entourés d'une pair de balise <url> et </url>.
   


II Présentation de 3 commandes

   
 wget, curl et diff

2.1 wget

    Description : wget est une commande non interactif pour télécharger des fichiers depuis le Web. Il rédirige par défaut le fichier dans le répertoire courant.

    Utilisation : wget [OPTION] [URL]

    Exemple : Nous l'avons testé avec l'url de page d'accueil du Trameur. Cette page est rédirigée par défaut dans notre répertoire courant avec son nom original. 


~/Documents/20172018-S1/Projet_Encadre/COURS/Seance1018$ wget http://www.tal.univ-paris3.fr/trameur/
--2017-10-22 20:04:23--  http://www.tal.univ-paris3.fr/trameur/
Resolving www.tal.univ-paris3.fr (www.tal.univ-paris3.fr)... 195.221.71.50
Connecting to www.tal.univ-paris3.fr (www.tal.univ-paris3.fr)|195.221.71.50|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 95057 (93K) [text/html]
Saving to: ‘index.html’

index.html                                                  100%[==========================================================================================================================================>]  92,83K  --.-KB/s    in 0,06s   

2017-10-22 20:04:23 (1,50 MB/s) - ‘index.html’ saved [95057/95057]

~/Documents/20172018-S1/Projet_Encadre/COURS/Seance1018$ ls
index.html  Notes1018.odt



2.2 curl

    Description : curl est une commande pour télécharger des fichiers et d'afficher son contenu dans la console, i.e. stdOUT. C'est-à-dire que nous avons besoins de le rédiriger si necessaire.

    Utilisation : curl [OPTION] [URL]

    Exemple: Nous l'avons testé avec le même url que nous avons utilisé sufra. Nous l'avons rédirigé avec un nouveau nom dans le même répertoire pour fair une comparaison à l'étape suivante.


~/Documents/20172018-S1/Projet_Encadre/COURS/Seance1018$ curl http://www.tal.univ-paris3.fr/trameur/ > curl_test.html
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 95057  100 95057    0     0  93465      0  0:00:01  0:00:01 --:--:-- 93560
~/Documents/20172018-S1/Projet_Encadre/COURS/Seance1018$ ls
curl_test.html  index.html  Notes1018.odt



2.3 diff

    Description : comparer des fichiers ligne par ligne

    Utilisation : diff [OPTION] [FICHIER1] [FICHIER2[OPTION] [URL]] ...

    Exemple : Nous avons comparé les deux fichiers que nous avons eu récupérés des étapes précédentes. Il ne renvoit aucune information, ce qui veut dire que les deux fichiers sont identiques. 


~/Documents/20172018-S1/Projet_Encadre/COURS/Seance1018$ diff index.html curl_test.html 
~/Documents/20172018-S1/Projet_Encadre/COURS/Seance1018$ 



III Création de n tableaux de 3 colonnes

 

Les consignes :

    -. Il faut lire un fichier d'URLs puis plusieurs ==> réalisé le 18/10/2017

    -. Il faut afficher chaque URL dans une ligne d'un tableau (1 colonne au départ) ==> réalisé le 12/10/2017 cf le blog précédent


    -. Il faut ajouter une colonne pour numéroter les URLs ==> réalisé le 18/10/2017


    -. Il faut créer un lien hypertexte pour chaque URL ==> réalisé le 12/10/2017 cf le blog précédent


    -. Il faut ajouter une colonne contenant "la page aspirée" pour chaque URL ==> réalisé le 18/10/2017


Note : Nous avons remarqué que de multiples tentatives de téléchargement avec des commandes risquaient un blocage par certains sites. Nous avons donc décidé de ne tester notre script qu'avec quelques petities listes d'urls aléatoires. Une fois que nous aurions finalement complété ce script, nous allons l'exécuter avec nos propres fichiers d'urls.


L'arborescence de notre répertoire de travail : 

~/Documents/20172018-S1/Projet_Encadre/PROJET_MOT_SUR_LE_WEB$ tree -d
.
├── CONTEXTES
├── DUMP-TEXT
├── IMAGES
├── PAGES-ASPIREES
├── PROGRAMMES
├── TABLEAUX
└── URLS

7 directories



EXECUTION : 

~/Documents/20172018-S1/Projet_Encadre/PROJET_MOT_SUR_LE_WEB$ bash ./PROGRAMMES/CreationTableaux_v_3col.sh < ./PROGRAMMES/parametres
Création d'une page html contenant trois colonnes
INPUT : Le nom du repertoire contenant les fichiers d'url : ./URLS
OUTPUT : Le nom du fichier html en sortie : ./TABLEAUX/Tableaux_URL
OUTPUT : Le nom du répertoire stockant les pages aspirées : ./PAGES-ASPIREES
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  101k    0  101k    0     0   261k      0 --:--:-- --:--:-- --:--:--  262k
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  100k    0  100k    0     0   418k      0 --:--:-- --:--:-- --:--:--  420k
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Toal   Spent    Left  Speed
100 53158    0 53158    0     0  94652      0 --:--:-- --:--:-- --:--:-- 94587
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 97507  100 97507    0     0  81807      0  0:00:01  0:00:01 --:--:-- 81869
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 47390    0 47390    0     0  57423      0 --:--:-- --:--:-- --:--:-- 57372
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 43151    0 43151    0     0  53233      0 --:--:-- --:--:-- --:--:-- 53207
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  102k    0  102k    0     0   161k      0 --:--:-- --:--:-- --:--:--  161k
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  222k    0  222k    0     0   918k      0 --:--:-- --:--:-- --:--:--  922k
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 87944  100 87944    0     0  79323      0  0:00:01  0:00:01 --:--:-- 79371
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  101k    0  101k    0     0   445k      0 --:--:-- --:--:-- --:--:--  447k
Fin de création des tableaux.


Résultat (partiel) : les pages aspirées


~/Documents/20172018-S1/Projet_Encadre/PROJET_MOT_SUR_LE_WEB$ ls ./PAGES-ASPIREES/
1-1.html  1-2.html  2-1.html  2-2.html  2-3.html  2-4.html  3-1.html  3-2.html  3-3.html  3-4.html

Explication du script

Initiation des 3 variables  à partir du fichier "parametres"

echo "Création d'une page html contenant trois colonnes";
read repertoire;
read nom_html;
read repertoire_aspiree;
echo "INPUT : Le nom du repertoire contenant les fichiers d'url : $repertoire";
echo "OUTPUT : Le nom du fichier html en sortie : $nom_html";
echo "OUTPUT : Le nom du répertoire stockant les pages aspirées : $repertoire_aspiree";



Initiation du compteur

compteur_tableaux=1; 


compteur_lien=1; 




2 boucles : 

La boucle externe permet de lire fichier par fichier et de créer n tableaux (n = le nombre de fichiers dans le répertoire ./URLS)
La boucle interne permet de traiter ligne par ligne des urls dans chaque fichier


for fichier_url in `ls $repertoire`     # la première boucle permettant de lire fichier par fichier et de créer n tableaux (n = le nombre de fichiers dans le répertoire ./URLS)
do
    echo -e "\t<table border=\"1\" align=\"center\" width=\"66%\" bordercolor=\"#47baae\">" >> $nom_html;
    echo -e "\t\t<tr bgcolor=\"#47baae\"><th colspan=\"3\">\n\t\t\t$fichier_url</th></tr>" >> $nom_html;
    echo -e "\t\t<tr>\n\t\t\t<th align=\"center\" width\"10%\">N°</th>" >> $nom_html;
    echo -e "\t\t\t<th width=\"80%\" align=\"center\">Lien</a></th>" >> $nom_html;
    echo -e "\t\t\t<th align=\"center\">Page Aspirée</th>\n\t\t</tr>" >> $nom_html;
    
    compteur_lien=1;
    for lien in `cat $repertoire/$fichier_url`      # la seconde boucle permettant de traiter ligne par ligne des urls dans chaque fichier
    do
        curl $lien > $repertoire_aspiree/$compteur_tableaux-$compteur_lien.html;      # aspirer des pages html et les rédiriger dans le répertoire ./PAGE-ASPIREES
        ###### écrire ligne par ligne et colonne par colonne le numéro, l'url et le lien vers la page aspirée dans chaque tableau ######
        echo -e "\t\t<tr >\n\t\t\t<td align=\"center\">$compteur_lien</td>" >> $nom_html;
        echo -e "\t\t\t<td><a href="$lien">$lien</a></td>" >> $nom_html;
        echo -e "\t\t\t<td align=\"center\"><a href=".$repertoire_aspiree/$compteur_tableaux-$compteur_lien.html">$compteur_tableaux-$compteur_lien</a></td>\n\t\t</tr>\n" >> $nom_html;
        let compteur_lien++;
    done    
    echo "</table>" >> $nom_html;
    echo -e "<hr width=\"66%\" size=\"6\" color=\"#47baae\"/>" >> $nom_html;    #horizontal rule
    let compteur_tableaux++;
done



Aspirer des pages html et les rédiriger dans le répertoire ./PAGE-ASPIREES


 curl $lien > $repertoire_aspiree/$compteur_tableaux-$compteur_lien.html;      # aspirer des pages html et les rédiriger dans le répertoire ./PAGE-ASPIREES



Ecrire ligne par ligne et colonne par colonne le numéro, l'url et le lien vers la page aspirée dans chaque tableau

echo -e "\t\t<tr >\n\t\t\t<td align=\"center\">$compteur_lien</td>" >> $nom_html;
echo -e "\t\t\t<td><a href="$lien">$lien</a></td>" >> $nom_html;
echo -e "\t\t\t<td align=\"center\"><a href=".$repertoire_aspiree/$compteur_tableaux-$compteur_lien.html">$compteur_tableaux-$compteur_lien</a></td>\n\t\t</tr>\n" >> $nom_html;



Incrémenter le compteur à la fin de chaque itération

let compteur_tableaux++;


let compteur_lien++;


MISE A JOUR de la version 18/10/2017

#   i.      lire plusieurs fichiers d'urls
#   ii.     stocker les urls dans des tableaux différents 
#   iii.    ajouter deux nouvelles colonnes (numéro et page_aspirée)
#   iv.     ajouter un paramètre pour stocker des pages aspirées


Script complet


#!/bin/bash
#PATH=$PATH:~/home/.../PROJET_MOT_SUR_LE_WEB
#./PROGRAMMES/CreationTableaux_v_3col.sh
#EXECUTION
#bash ./PROGRAMMES/CreationTableaux_v_3col.sh < ./PROGRAMMES/parametres
#VERSION 20171018
#MISE A JOURS :
#   i.      lire plusieurs fichiers d'urls
#   ii.     stocker les urls dans des tableaux différents  
#   iii.    ajouter deux nouvelles colonnes (numéro et page_aspirée)
#   iv.     ajouter un paramètre pour stocker des pages aspirées
################################################################
#parametre :  ./PROGRAMMES/parametres
################################################################
echo "Création d'une page html contenant trois colonnes";
read repertoire;
read nom_html;
read repertoire_aspiree;
echo "INPUT : Le nom du repertoire contenant les fichiers d'url : $repertoire"; 
echo "OUTPUT : Le nom du fichier html en sortie : $nom_html";
echo "OUTPUT : Le nom du répertoire stockant les pages aspirées : $repertoire_aspiree";

######debut de la page HTML finale ######
echo  '<!DOCTYPE html>' >$nom_html;
echo -e "<html>\n<head>\n\t<meta charset=\"utf8\">\n\t<title>Tableaux de liens</title>\n</head>\n<body>" >> $nom_html; 
echo -e "\t<h2 align = \"center\">Tableau de liens</h2>" >> $nom_html;


###### 2 iterateurs : 1 pour tableau (compteur_tableaux), 1 pour ligne (compteur_lien) ######
compteur_tableaux=1;
for fichier_url in `ls $repertoire`     # la première boucle permettant de lire fichier par fichier et de créer n tableaux (n = le nombre de fichiers dans le répertoire ./URLS)
do
    echo -e "\t<table border=\"1\" align=\"center\" width=\"66%\" bordercolor=\"#47baae\">" >> $nom_html;
    echo -e "\t\t<tr bgcolor=\"#47baae\"><th colspan=\"3\">\n\t\t\t$fichier_url</th></tr>" >> $nom_html;
    echo -e "\t\t<tr>\n\t\t\t<th align=\"center\" width\"10%\">N°</th>" >> $nom_html;
    echo -e "\t\t\t<th width=\"80%\" align=\"center\">Lien</a></th>" >> $nom_html;
    echo -e "\t\t\t<th align=\"center\">Page Aspirée</th>\n\t\t</tr>" >> $nom_html;
    
    compteur_lien=1;
    for lien in `cat $repertoire/$fichier_url`      # la seconde boucle permettant de traiter ligne par ligne des urls dans chaque fichier
    do
        curl $lien > $repertoire_aspiree/$compteur_tableaux-$compteur_lien.html;      # aspirer des pages html et les rédiriger dans le répertoire ./PAGE-ASPIREES
        ###### écrire ligne par ligne et colonne par colonne le numéro, l'url et le lien vers la page aspirée dans chaque tableau ######
        echo -e "\t\t<tr >\n\t\t\t<td align=\"center\">$compteur_lien</td>" >> $nom_html;
        echo -e "\t\t\t<td><a href="$lien">$lien</a></td>" >> $nom_html;
        echo -e "\t\t\t<td align=\"center\"><a href=".$repertoire_aspiree/$compteur_tableaux-$compteur_lien.html">$compteur_tableaux-$compteur_lien</a></td>\n\t\t</tr>\n" >> $nom_html;
        let compteur_lien++;
    done    
    echo "</table>" >> $nom_html;
    echo -e "<hr width=\"66%\" size=\"6\" color=\"#47baae\"/>" >> $nom_html;    #horizontal rule
    let compteur_tableaux++;
done

###### fin de la page HTML finale ######
echo -e "</body>\n</html>" >> $nom_html;
echo "Fin de création des tableaux.";


RESULTATS

Tableaux



Fichier html 


Une des pages originales (colonne 2)


Le fichier local correspondant (colonne 3 : page aspirée)





Références





https://www.tutorialspoint.com/unix_commands/curl.htm 

http://www.linux-france.org/article/man-fr/man1/diff-1.html

Total comment

Auteurs

AI_PLURITAL