Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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;">&nbsp;(<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