Vous n'êtes pas identifié(e).
L'idée c'est d'extraire les données contenues dans les balises TD et de les mettre dans une variable tableau.
Voici ce que j'ai fait :
Maintenant j'ai deux problèmes, le premier, c'est que les deux TD qui contiennent respectivement Centre 1 et Centre 2 ne sorte pas avec echo $titre...
Le deuxième problème, est que mon tableau, reste vide malgré que dans la variable $titre contiennent quand même les textes des autres TD ...
Une idée ??
Merci par avance.
Orsam
Dernière modification par Orsam999 (27-08-2015 06:31:35)
Celui qui ne progresse pas chaque jour, recule chaque jour.
Confucius
Hors ligne
Pour résoudre le problème des tabulation, retour chariots, etc.. , j'ai fait une petite commande tr :
Maintenant, mon html ressemble à ça (ok, pourquoi pas..) :
Par contre maintenant, le code du post précédent ne renvoi plus rien :
Je pense que c'est le while read qui ne va pas, mais je ne sais pas quoi utiliser d'autre...
Au secours !!
Merci.
Orsam
Celui qui ne progresse pas chaque jour, recule chaque jour.
Confucius
Hors ligne
++
% cat /usr/include/sys/errno.h
#define EPERM 1 /* Operation not permitted */
[...]
#define EMACS 666 /* Too many macros */
Hors ligne
Dernière modification par Orsam999 (27-08-2015 06:31:13)
Celui qui ne progresse pas chaque jour, recule chaque jour.
Confucius
Hors ligne
Mon site : http://www.easytravel.ma
Hors ligne
Je pense que c'est le while read qui ne va pas, mais je ne sais pas quoi utiliser d'autre...
Ce n'est pas le « while read » qui ne fonctionne mais la façon dont il
est utilisé. Le problème vient du tube que tu utilises pour passer tes
données à read. Ce tube va créer un sous shell dans lequel la
variable mon_tableau est complétement indépendante de celle que
tu as créé juste avant la boucle. Pour circonvenir à cette situation,
on peut utiliser une substitution de processus comme l'a fait D@mien.
Pour être clair, la substitution de processus c'est :
Cela crée un tube nomé (c'est un fichier dans le système de fichier)
temporaire. sed va donc afficher sur la sortie standard qui est
redirigé vers ce tube nomé. Avec l'autre partie :
On va rediriger l'entrée standard pour lire dans le tube nomé.
Et donc :
Va permettre à read de lire les données extraites par sed.
Donc, tu peux tout à fait continuer à utiliser sed
Aller, le programme complet :
Évidemment, ça serait mieux en perl, python ou ruby, mais bon… En
plus, analyser du code html en utilisant des expressions rationnelles
peut être assez aventureux. Il existe d'excellentes bibliothèques pour
cela, beautifulsoup et html5lib en python par exemple. Il en existe
en perl et en ruby aussi. Mais même mieux l'utilitaire xpath
fournit avec libxml-xpath-perl permet aussi d'extraire des
données des fichiers html pour peu qu'ils soient bien formés (d'après
ce que je me souviens). Il est tout à fait possible d'utiliser xpath
dans un shell script
Dernière modification par enicar (29-02-2016 21:07:15)
Hors ligne
Le « -t », c'est pour enlever les retour à la ligne. Du coup ton script
devient vraiment simple. J'ai un peu modifié l'expression sed
pour qu'elle corresponde mieux à tes données…
Mais si il y a un <td> écrit sur plusieurs lignes ça ne marchera pas…
C'est la limite de ce genre d'approche basée sur des expressions
rationnelles. Je pense que l'on peut le faire fonctionner quand même
avec plusieurs expressions sed bien choisies… je le laisse en exercice
Hors ligne