Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2494 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Script utilisant wget et --header

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Script utilisant wget et --header

n°704082
Ze Reaper
Posté le 08-07-2005 à 12:14:08  profilanswer
 

Salut,
Je dois ecrire un shellscript qui utilise le validateur CSS du W3C pour... valider des CSS (mais seuls les headers de retour m'interessent).
Les CSS a valider doivent etre dans le fichier tests.urls sous forme soit d'url, soit de chemins vers des fichiers locaux. Le script fait ensuite la requete adequate au serveur.
Voila le code qu j'ai ecrit:

Code :
  1. #!/bin/sh
  2. # EDIT THIS
  3. VALIDATOR="http://w3cstag8:8001/css-validator/validator"
  4. TESTFILE="tests.urls"
  5. ACCEPT_CHARSET="iso-8859-2"
  6. # END EDIT THIS
  7. WGET_OPTIONS="-S --spider"
  8. if [ "$ACCEPT_CHARSET" != "" ]
  9. then
  10.     HEADER="--header='Accept-Charset: $ACCEPT_CHARSET'"
  11. fi
  12. while read LINE
  13. do 
  14.   if echo $LINE | grep "http://" > /dev/null
  15.   then
  16.       wget $WGET_OPTIONS $HEADER "$VALIDATOR/?uri=$LINE&usermedium=all"
  17.   else
  18.       TEXT=`cat $LINE`
  19.       wget $WGET_OPTIONS $HEADER "$VALIDATOR/?text=$TEXT&usermedium=all"
  20.   fi
  21. done < $TESTFILE


Voila ce que j'obtiens dans le cas d'une url (ici <pub>http://sparodez.celeonet.fr</pub> )(le resultat est le meme avec un fichier):

Citation :

--12:02:34--  http://iso-8859-2'/
           => `index.html'
Resolving iso-8859-2'... failed: Name or service not known.

--12:02:34--  http://w3cstag8:8001/css-validator [...] medium=all
           => `index.html?uri=http:%2F%2Fsparodez.celeonet.fr&usermedium=all.4'
Resolving w3cstag8... 127.0.0.1
Connecting to w3cstag8|127.0.0.1|:8001... connected.
HTTP request sent, awaiting response...
  HTTP/1.1 200 OK
  Cache-Control: no-cache
  Connection: keep-alive
  Date: Fri, 08 Jul 2005 10:02:34 GMT
  Pragma: no-cache
  Content-Length: 19033
  Content-Language: en
  Content-Type: text/html;charset=utf-8
  Server: Jigsaw/2.2.5
Length: 19,033 (19K) [text/html]
200 OK
 
 
FINISHED --12:02:35--
Downloaded: 0 bytes in 0 files


au lieu de ca

Citation :

--12:04:30--  http://w3cstag8:8001/css-validator [...] medium=all
           => `index.html?uri=http:%2F%2Fsparodez.celeonet.fr&usermedium=all.4'
Resolving w3cstag8... 127.0.0.1
Connecting to w3cstag8|127.0.0.1|:8001... connected.
HTTP request sent, awaiting response...
  HTTP/1.1 200 OK
  Cache-Control: no-cache
  Connection: keep-alive
  Date: Fri, 08 Jul 2005 10:04:30 GMT
  Pragma: no-cache
  Content-Length: 19033
  Content-Language: en
 Content-Type: text/html;charset=iso-8859-2
  Server: Jigsaw/2.2.5
Length: 19,033 (19K) [text/html]
200 OK

lorsque je tape la commande suivante:

Citation :

wget -S --spider --header='Accept-Charset: iso-8859-2' "http://w3cstag8:8001/css-validator/validator/?uri=http://sparodez.celeonet.fr&usermedium=all"


Comme on peut voir, il fait 2 requete, la premiere sur http://iso-8859-2'/ n'etant pas normale. Et du coup, le header d'envoi ne contient pas les bonnes informations => le header de retour non plus (utf-8 au lieu de iso-8859-2 dans ce cas).
Je pense que le probleme se situe au niveau de la variable $HEADER a cause de quote, mais je ne vois pas comment le resoudre.
 
Merci,
 
Ze Reaper
 
PS: Pour mes tests je n'utilise pas http://jigsaw.w3.org, mais une version encore en developpement de ce validateur. Pour tester le code, il faut donc changer la variable $VALIDATOR par http://jigsaw.w3.org/css-validator/validator. Il faut cependant noter que la version officielle du validateur n'inclut pas encore la gestion des Accept-Charset (ca ne saurait tarder :)), et donc ne renvoie pas de charset dans la reponse.


Message édité par Ze Reaper le 08-07-2005 à 12:16:27
mood
Publicité
Posté le 08-07-2005 à 12:14:08  profilanswer
 

n°704870
Xavier_OM
Monarchiste régicide (fr quoi)
Posté le 11-07-2005 à 09:01:00  profilanswer
 

Ca pour un bide c'est un bide  :ouch:  
Bon j'up le topic parce qu'après tout la réponse peut m'intérésser :D
 
 
Normalement si je me trompe pas :

  • dans les "single quote" tous les caractères sont quoted, même le backslash. (Le résultat est un unique mot)
  • dans les "double quotes" on a quand même la substitution des variables ($ est interprété) mais pas * ou ? par exemple. (Le résultat est un unique mot là aussi)


 
 
Donc si ya qqun qui comprend pourquoi ca marche pas :D


---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.
n°706051
Ze Reaper
Posté le 13-07-2005 à 13:04:15  profilanswer
 

/me a peu de reponses :cry:  
 
Merci de me soutenir dans ma detresse xav


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Script utilisant wget et --header

 

Sujets relatifs
script iptablesDéconnexion Gaim depuis la mise en place de mon script iptables
Script pour changer d'IPTuer tous les processus utilisant un périphérique
[Script Shell] Afficher les tentatives d'intrusion ssh chaque jourlancer un script depuis serveur
lancer un script depuis serveurScript Unix
[bash] Retirer des droits d'un user chrooté root de sa prison ?FTP script
Plus de sujets relatifs à : Script utilisant wget et --header


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR