Début du traitement des urls

débutboucle

La commande wget permet de récupérer la page indiquée par l’url (fonction -O) et de stocker le lien dans un fichier html que l’on crée dans le répertoire PAGES-ASPIREES.

La variable $? est fonction de l’exécution de la commande précédente : elle prend la valeur 1 en cas d’échec de la commande qui la précède ou la valeur 0 si la commande s’est exécutée sans encombres. La condition if [$? ==0] permet donc de vérifier que wget  a bien récupéré la page web avant de passer à la suite du programme.

 

recupèreencodage

La commande file -i récupère l’encodage de la page et cut sectionne celui-ci suivant le délimiteur défini après -d et -f2 permet de récupérer le deuxième morceau. L’encodage se présentant sous la forme « charset=utf-8 », cette ligne de commande permet de récupérer le morceau à droite du délimiteur =. Le résultat des commandes file et cut est stocké dans la variable encodage.

 

 

 

 

 

 

 

 

Début du traitement des urls

Commandes Unix bonus

Petit bonus de commandes unix…

La commande whoami permet de savoir qui a ouvert la session en cours :

Capture d’écran 2015-11-24 à 14.45.12
whoami indique le nom de l’usager connecté

 

La commande locale indique les paramètres relatifs à la langue et d’autres informations sur les conventions d’écriture :

locale

 

La commande unicode suivie de n’importe quel caractère permet d’en afficher les caractéristiques unicode :

unicode2
Caractéristiques unicode pour les caractères é ù @ et %

 

La commande iconv -l affiche tous les encodages pris en compte par l’invité de commande :

iconv -l.png

 

La commande sudo permet de s’octroyer les droits administrateurs et d’exécuter une commande en tant que tel (afin de pouvoir installer des outils par exemple). La commande apt-get permet de récupérer des paquets et la commande install de les installer :

sudo.png
Installation d’Okteta
Commandes Unix bonus

Créer des tableaux contenant des liens numérotés dans un fichier HTML à partir de plusieurs fichiers texte – en PYTHON

Encore une fois, ce post vient compléter son pendant en bash, qui porte un nom quasi-identique.

Voici le script en python : ce_python_script2

Pour qu’on puisse bien voir le code (dont l’image ci-dessus est assez large), les commentaires ont été tronqués.

Voici l’explication du code :

Première étape

Dans un premier temps, on importe plusieurs fonctions du module ‘os’ de python, où ‘os’ correspond à ‘operating system’. Il y a probablement plus simple que le code proposé ci-dessus, mais comme je découvre petit à petit ce module, je me contente pour l’instant de cette solution. Si le code devient trop compliqué, j’essaierai d’utiliser d’autres fonctions de ce module (très riche) pour optimiser le script.

Une fois le module importé, on affiche grâce à la fonction getcwd() le répertoire courant. On demande ensuite à l’utilisateur s’il s’agit du bon répertoire. Si la réponse est « oui », il ne se passe rien. Si la réponse est « non », on demande à l’utilisateur de saisir le chemin de son répertoire (chemin absolu). Puis, à l’aide de la fonction chdir, on se rend dans ce répertoire. On confirme ensuite le répertoire de travail en l’indiquant à l’utilisateur.

Deuxième étape

Transformation du ‘contenu’ du répertoire en liste  :

La fonction listdir() permet de créer une liste (appelée ici liste_fichiers) dans laquelle on stocke les différents noms de fichiers.

J’ai rencontré des problèmes avec le module path, j’ai donc utilisé ce système de liste pour contourner le problème.

Utilisation d’une boucle for pour parcourir la liste :

La boucle permet, pour chaque fichier :

  • de supprimer l’extension de son nom
  • de générer un nom de tableau correspondant (cela permet à la page HTML contenant le tableau d’avoir le même nom que le fichier URL correspondant, à ceci près qu’on précise qu’il s’agit d’un tableau).
  • de générer la page HTML qui contiendra ce tableau
  • d’écrire dans le fichier ce qui le fait devenir une page HTML : les balises HTML de la page, ainsi que l’ouverture et la fermeture du tableau
  • une autre boucle for, enchâssée dans le tableau mentionné au point précédent.

En outre, l’utilisateur est prévenu de la liste de fichiers qui vont être générés et du nom qu’ils auront.

Une boucle for dans une boucle for :

La seconde boucle for, qui s’étend de la ligne 34 à la ligne 38, permet pour chaque ligne du fichier (autrement dit pour chaque URL) de créer une ligne dans le tableau, dans laquelle il y a deux cellules : une pour indexer l’URL, et l’autre pour l’URL en question.

Le fait que cette boucle soit incluse dans la première boucle fait que, pour chaque fichier du répertoire, on génère une page HTML contenant un tableau (boucle 1) dans lequel, pour chaque URL, une ligne est générée (boucle 2).

Exemple de rendu :

ce_python_script2_expl

Etant donné que mes fichiers URL sont ‘malades’, et que je n’ai pas encore corrigé le souci, je vous présente ici un exemple avec un fichier fictif contenant des URL fictives.

Remarques

On peut voir que des problèmes ont été réglés :

  • On peut gérer plusieurs fichiers d’URL en même temps. La solution proposée ici permet de gérer un nombre potentiellement important de fichiers URL.
  • La page HTML générée est lisible : les \n (retour à la ligne) et \t (tabulations) assurent l’indentation correcte d’un code HTML.

Finalement, la première boucle for permet de refermer chaque fichier HTML, après avoir refermé les tableaux.

Evidemment, ce code peut encore être amélioré, mais ce sera l’objet d’un prochain post ! A bientôt, donc.

Créer des tableaux contenant des liens numérotés dans un fichier HTML à partir de plusieurs fichiers texte – en PYTHON

Lister toutes les lignes d’un fichier texte dans un tableau – en PYTHON

Le principe est le même que dans le post du (quasi-)même nom : il s’agit de construire une page HTML contenant un tableau. Le tableau est construit à partir d’un fichier texte, dans lequel on trouve une URL par ligne.

Le script est réalisé ici en python (là où dans l’autre post, on avait affaire à du bash).

ce_code_tableau_python

Cliquez sur l’image ci-dessus pour lire plus en détail le code et/ou les commentaires.

En gros, il s’agit dans un premier temps de lire le contenu du fichier, contenu que l’on stocke dans une liste. Puis de créer une page HTML contenant, pour chaque élément de la liste, une ligne de tableau avec deux cellules : une pour indexer l’URL, et l’autre avec l’URL en question.

Ce script est un premier jet, et on voit déjà qu’il peut poser des problèmes. Par exemple, en ce qui concerne la page HTML générée. Elle est certes créée, mais le script ci-dessus ne permet pas d’écrire dans la page l’indentation correcte pour la page. Ce qui veut dire que, si pour une quelconque raison, on veut modifier directement le code HTML de la page, on aura quelques soucis de lisibilité.

Pour l’instant, cela ne porte pas tellement à conséquence. Mais en admettant que nos fichiers URL (parce qu’on en aura plusieurs – un autre souci à corriger, donc) soient très longs, la relecture du code HTML sera vite pénible.

Ces deux problèmes seront corrigées dans la prochaine version de ce script, toujours en python, mais plus étoffée.

Lister toutes les lignes d’un fichier texte dans un tableau – en PYTHON

Créer des tableaux contenant des liens numérotés dans un fichier HTML à partir de plusieurs fichiers texte

Script :

script2

Le script contient deux boucles for emboîtées qui peuvent se lire ainsi : « pour chaque ligne de chaque fichier contenu dans le dossier URLS » (lignes 10-24 pour la première, 16-20 pour la seconde).

Un premier compteur (aux lignes 9, 12 et 22) permet de numéroter chaque tableau. Le second (lignes 14, 18 et 19) numérote les lignes de chaque tableau.

Exécution du script :

commande

Aperçus du résultat :

tableau_liensliens_finnoisliens_russe

Créer des tableaux contenant des liens numérotés dans un fichier HTML à partir de plusieurs fichiers texte

Lister toutes les lignes d’un fichier texte dans un tableau

Aperçu du fichier texte :

fichier

Le script bash ci-dessous permet de saisir le nom du fichier texte (commande read ligne 3), de créer un deuxième fichier où stocker le résultat (ligne 5) et de créer un tableau (ligne 8) dans ce dernier.

script La boucle for (lignes 13-16) permet pour chaque ligne du fichier texte, d’ajouter une ligne au tableau dans le fichier HTML. On ferme ensuite le tableau ligne 25.

Exécution du script (avec Cygwin) en indiquant les chemins où trouver/placer chaque fichier :

cygwin

Aperçu du résultat depuis un navigateur, chaque ligne du tableau contient bien une ligne du fichier texte d’origine :

tableau_simple

Lister toutes les lignes d’un fichier texte dans un tableau

Parti pris de recherche des URLS et thématique du projet

Nous avons choisi de focaliser notre recherche d’URLs sur des articles de journaux en ligne (provenant par exemple et pour le français de sites internet comme celui du journal Le Monde), en y intégrant si possible des productions d’internautes (blog ou commentaires).

Bien que, d’après notre premier post nous ayons choisi de travailler sur le mot « tabou », notre thématique de recherche est en réalité beaucoup plus large ; nous étions en effet parties à la base du mot « censure » qui nous a ensuite amenées au mot « tabou ». Notre thématique de recherche porte donc sur les liens que peuvent entretenir les notions de CENSURE et de TABOU : ces deux mots apparaissent – ils dans un même contexte sémantique ? Dans un même article ?

Parti pris de recherche des URLS et thématique du projet

Création de l’environnement de travail

Pour créer les dossiers de l’arborescence de travail, on peut soit rentrer directement la commande mkdir dans la console pour créer un à un tous les dossiers voulus soit créer un script bash contenant toutes les commandes mkdir voulues et exécuter ce dernier depuis la console. Dans tous les cas, il convient d’être situé depuis la console au bon endroit de l’arborescence.

1) Entrée de la commande directement depuis la console :

environnement1NB : Ici, le dossier existait déjà, la console m’affiche donc qu’elle ne peut créer le dossier demandé (c.f. « File exists »).

2) Création d’un script bash avec Notepad++ contenant les commandes de création de dossiers :

environnement2

Le script est positionné dans l’arborescence à l’endroit où les dossiers seront créés :

environnement3

Exécution du script :

environnement4

Résultat :

environnement5

Création de l’environnement de travail