Pages : 1
#1 Le 15/01/2008, à 14:32
- yundsi
sed et caractere spéciaux
Bonjour voilà je continue mon script pour générer automatiquement des pages d'information sur mes films (cf le poste sur wget)
Donc voilà o๠j'en suis je récupére le titre du film et donc je telecharge la page de recherche d'allocine sur le titre de mon film. J'ai donc regarder le code de cette page et o๠se trouve le lien qui m'interesse c'est à dire le lien vers la page d'information du dit film. J'en ai donc conclu que le lien se trouver toujours dans la balise html suivante
<a href="LE LIEN QUI MINTERESSE" class=\"link1\"><b>
Maintenant prenons l'exemple de pirates des caraibes le secret du coffre maudit, grace a wget je stock la page de recherche d'allocine dans le fichier Pirates+des+Caraibes+Le+secret+du+coffre+maudit
Donc la commande pour récupérer le lien est la suivante
$ cat Pirates+des+Caraibes+Le+secret+du+coffre+maudit | sed -r -n -e "s/^.*<a href=\"(.*)\" class=\"link1\"><b>.*/\1/p"
Jusque là tout va bien, et le résultat de ma commande et le suivant
/film/fichefilm_gen_cfilm=57138.html�bes</b>, <b>le</b> <b>secret</b> <b>du</b> <b>coffre</b> <b>maudit</b></a></h4><h5><a href="/film/fichefilm_gen_cfilm=57138.html" class="link4" style="color: #808080; text-decoration:none;"> (<b>Pirates</b> of the Caribbean 2 : Dead Man's Chest)</a></h5><div style="padding-top: 2px;"><h4 style="color: #808080">2006</h4></div><div style="padding-top: 2px;"><h5 style="color: #808080">de Gore Verbinski</h5></div><div style="padding-top: 2px;"><h5 style="color: #808080">avec Johnny Depp, Orlando Bloom</h5></div></td></tr></table></td></tr><tr><td colspan="2" height="1" valign="top"><hr /></td></tr><tr></tr></table></td></tr></table>
J'ai donc bien récupérer l'url du film mais le problême c'est que le . des ERE ne prend pas le ௠de caraà¯bes, et donc le .* s'arrete de s'expanser lorsqu'il rencontre à¯. Et la substitution ne vire pas tout le code après le à¯.
Donc voilà j'aimerais savoir comment faire pour pouvoir prendre en compte le ௠et donc virer tout ce qui il ya après l'url qui m'interesse. Ou tout autre solutions qui pourrer régler le problême.
Voilà je sais pas si je me suis bien exprimé, mais si le besoin et demander moi des eclairssisement si besoin
Hors ligne
#2 Le 15/01/2008, à 20:30
- Alain.g
Re : sed et caractere spéciaux
Salut
Essaie en insérant iconv afin de réencoder en UTF-8
cat Pirates+des+Caraibes+Le+secret+du+coffre+maudit | iconv -f LATIN1 -t UTF-8 | sed -r -n -e "s/^.*<a href=\"(.*)\" class=\"link1\"><b>.*/\1/p"
ou, certainement plus économique, avec grep :
cat Pirates+des+Caraibes+Le+secret+du+coffre+maudit | grep -om1 '/film/fichefilm[^"]*\.html' | head -n1
Dernière modification par Alain.g (Le 16/01/2008, à 01:09)
Xubuntu Karmic !
Hors ligne
#3 Le 16/01/2008, à 11:12
- Aurel34
Re : sed et caractere spéciaux
t'as essayé avec un LC_ALL=fr avant ?
(sans garantie mais si c'est un problème de locale...)
#4 Le 16/01/2008, à 12:48
- yundsi
Re : sed et caractere spéciaux
Non j'ai pas testé avec LC_ALL=fr, je vais essayer, mais sinon Alain.g ta solution marche, par contre la seconde ne fonctionne pas vraiment, en effet si la page de recherche d'allocine contient plusieurs films différents elle va selectionné le premier, et c'est pas vraiment ce qu'on veut (ex: Quand on recherche le film Assassin(s)).
Sinon merci la première solution et satisfaisante. J'essairai aussi avec LC_ALL=fr.
Hors ligne
Pages : 1