Aller au contenu

[script][besoin d'aide pour parser]

Featured Replies

Posté(e)

Hello,

J'essaye de faire un script qui me pompe tout ce qu'il y a sur une page.

L'astuce est que je n'ai besoin que de certains fichiers (pour le boulot).

Comme il y a en moyenne 50 fichiers a télécharger, cliquer 50fois c'est lourd...

Donc je download l'index.html, et je le découpe pour récupérer les fichier dont j'ai besoin...

Jusque la, pas de problème...

cat index.html | grep -i "gestcom"

Et j'ai mon code html, mais je dois récupérer l'adresse exacte...

Voici le type de ligne par fichier :

<img src="/icons/unknown.gif" alt="[   ]"> <a href="ADRESSE A CHOPER">Nom du fichier</a> 07-Jan-2007 05:57   taille

Donc en fait, j'aimerais trouver un moyen de choper a partir du herf=" jusqu'au " qui suit.

Je tiens vraiment a ne pas faire un système de colonne en comptant les " ou les espaces car le code n'est pas toujours identique car il vient de serveurs différents...

Voili voilou, merci d'avance si vous pouvez m'aider :francais:

Posté(e)

Hello,

J'essaye de faire un script qui me pompe tout ce qu'il y a sur une page.

L'astuce est que je n'ai besoin que de certains fichiers (pour le boulot).

Comme il y a en moyenne 50 fichiers a télécharger, cliquer 50fois c'est lourd...

Donc je download l'index.html, et je le découpe pour récupérer les fichier dont j'ai besoin...

Jusque la, pas de problème...

cat index.html | grep -i "gestcom"

Et j'ai mon code html, mais je dois récupérer l'adresse exacte...

Voici le type de ligne par fichier :

<img src="/icons/unknown.gif" alt="[   ]"> <a href="ADRESSE A CHOPER">Nom du fichier</a> 07-Jan-2007 05:57   taille

Donc en fait, j'aimerais trouver un moyen de choper a partir du herf=" jusqu'au " qui suit.

Je tiens vraiment a ne pas faire un système de colonne en comptant les " ou les espaces car le code n'est pas toujours identique car il vient de serveurs différents...

Voili voilou, merci d'avance si vous pouvez m'aider :francais:

maListeDUrl=$(sed -e "s/.*href=\"\([^"]*\)\".*/\1/g")

Ca devrait le faire (j'ai pas de shell sous la main pour vérifier)

En gros, ca te choppe toute la ligne, sauf que le contenu coincé dans les " du href, il est stocké dans une variable de sed, et tout la ligne est remplacé par cette variable ensuite (par l'appel de \1, qui est la variable sed)

Par contre, il faut bien que les href soient encadré par des " "

EDIT : correction du .* de selection par un [^\"] de fort bon aloi

Posté(e)
  • Auteur

Merci mais il y a une erreur de syntaxe car joe me fait une coloration plutot bizarre...

En fait je ne sais pas tester tout de suite, donc j'essaye demain...

Merci déja :chinois:

Posté(e)

c'est qu'il manque un \

sed -e "s/.*href=\"\([^\"]*\)\".*/\1/g"

en plus c'est bien mis dan l'edit 8)

comme on dit : "sed, c'est bien" :craint:

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.