[traitement de page web]aide pour script

Bonsoir.
Je suis en train d’essayer d’écrire un script me permettant de récupérer des paroles de chanson. voici où j’en suis :

[code]#!/bin/sh
#script pour trouver les paroles jouées par mpd

#votre navigateur préféré
NAVIGATEUR=“surf”
#on regarde si mpd joue
if [ “$(ps axo comm |grep mpd)” = “mpd” ] && [ “$(mpc |grep ‘playing’)” != “” ]; then

TITLE="$(mpc | head -n 1 |cut -d - -f2 |sed 's/ /+/g' |sed 's/+//')"
ARTIST="$(mpc | head -n 1 |cut -d - -f1 |sed 's/ /+/g')"
	#on récupère le code de la page
wget http://api.leoslyrics.com/api_search.php?auth=duane'&'songtitle=$TITLE'&'artist=$ARTIST -O /tmp/RESULT
REFERENCE_PAGE="$(cat /tmp/RESULT | grep hid |awk '{print $3}' | sed 's/hid=//g' | sed 's/\"//g')"
	#on récupère les paroles
wget http://www.leoslyrics.com/listlyrics.php?hid=$REFERENCE_PAGE -O /tmp/lyrics

fi

[/code]
Mon problème est le suivant : je parviens à obtenir l’adresse de la page où sont situées les paroles. Maintenant, comment puis-je les récupérer en format texte? Car si je fais comme dans le script actuel, un simple wget adresse_de_la_page , ben je récupère quelque chose de bien bizarre.

Déja que je débute pour les scripts, j’ai beaucoup de mal avec le langage web…
Quelqu’un aurait une méthode sous la main?
Merci d’avance :smt006

ps : je sais, c’est pas propre du tout mes sed, cut et tout mélangé, mais j’essaie d’abord d’avoir quelque chose qui marche, puis je l’améliorerais à l’avenir. Quand j’en saurais plus aussi :stuck_out_tongue: )

J’ai avancé un petit peu, mais là je coince. Il faudrait que je puisse afficher le texte qui se trouve seulement entre les ballises et . Et j’ai beau chercher…
désolé de la médiocrité du script… :

[code]#!/bin/sh
SB="#D4D4D4"
SF="#1C1918"
NB="#251C1A"
NF="#D4D4D4"
#script pour trouver les paroles jouées par mpd

#votre navigateur préféré
NAVIGATEUR=“surf”
#on regarde si mpd joue
if [ “$(ps axo comm |grep mpd)” = “mpd” ] && [ “$(mpc |grep ‘playing’)” != “” ]; then

TITLE="$(mpc | head -n 1 |cut -d - -f2 |sed 's/ /+/g' |sed 's/+//')"
ARTIST="$(mpc | head -n 1 |cut -d - -f1 |sed 's/ /+/g')"
	#on récupère le code de la page
wget http://api.leoslyrics.com/api_search.php?auth=duane'&'songtitle=$TITLE'&'artist=$ARTIST -O /tmp/RESULT
REFERENCE_PAGE="$(cat /tmp/RESULT | grep hid |awk '{print $3}' | sed 's/hid=//g' | sed 's/\"//g')"
	#on récupère les paroles
wget http://api.leoslyrics.com/api_lyrics.php?auth=duane'&'hid=$REFERENCE_PAGE -O /tmp/PAROLESXML
On les affiche dans dmenu
cat /tmp/PAROLESXML | dmenu -fn 'fixed' -nb $NB -nf $NF -sb $SB -sf $SF -l 30

fi

[/code]

Utilise html2text (paquet du même nom), ce sera beaucoup plus facile de faire des opérations sur du texte que sur de l’html.

Merci du tuyau, je vais regarder :slightly_smiling:

Eventuellement regarder du côté de xslt sinon, voire s’il existe une appli deb (xmllint ?) ou tout simplement une façon simple de faire joujou avec (template générique + inclusion du xml récupéré par exemple, et après avec 2 ou 3 manips tu devrais récupérer ce qui t’intéresse). Faut voir quelle est la chose la plus pratique pour toi.

Tu peux aussi utiliser links :

Merci pour toutes vos pistes! j’ai du pain sur la planche. Le but reste de transformer une page afin d’en extraire seulement les informations intéressantes.

Juste une simple question en rapport avec ce que tu souhaite faire pourquoi fais-tu cela en bash est-ce pour l’apprentissage du langage ou juste que tu ne sais pas si l’on peux le faire plus facilement avec un autre ?

Si c’est la deuxième solution alors regarde un peu Perl et WWW::Mechanize

search.cpan.org/~petdance/WWW-Me … chanize.pm

C’est parce que c’est le seul langage que je “maitrise” un petit peu. :blush:
Et je n’ai pas encore eu suffisamment de temps ( ni pris le temps) pour apprendre rigoureusement le scripting shell, le c, et ainsi passer à d’autres langages.

Ne t’inquiète pas ce n’est pas une critique juste pour comprendre. Amuse toi bien en shell si tu le désire. Ceci dit maintenant tu sais qu’il y a une autre manière de faire plus simple il n’appartient qu’à toi de persister dans l’apprentissage de ta connaissance par la continuité de ton action ou de passer à autre chose.

Amuse toi bien et bon courage :wink:

En même temps pour l’instant je ne vais pas faire des choses incroyables, donc le shell me convient. Mais avec le temps je verrasi d’autres choses :slightly_smiling: .

Ah … perl … la tronçonneuse suisse des langages de prog :stuck_out_tongue: