#1 Le 22/12/2010, à 12:13
- Link_Octree
Wget qui ne télécharge pas la page spécifiée, WTF o_0 ?
Hello,
Je rencontre un problème qui me laisse vraiment sans voix... Je vous laisse voir çà:
$ wget -O boulet.html http://twitter.com/justinbieber
--2010-12-22 12:05:53-- http://twitter.com/justinbieber
Resolving twitter.com... 128.242.240.212, 168.143.162.116, 128.242.245.180
Connecting to twitter.com|128.242.240.212|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 52909 (52K) [text/html]
Saving to: `boulet.html'
100%[==============================================================================================================================>] 52,909 57.1K/s in 0.9s
2010-12-22 12:05:54 (57.1 KB/s) - `boulet.html' saved [52909/52909]
Maintenant j'ouvre cote à cote boulet.html, et la page twitter que je viens de wget:
J'avoue ne vraiment pas comprendre pourquoi les deux pages sont pas les mêmes vu que j'ai wget l'une quelques secondes avant d'afficher l'autre online...
PS: J'ai vraiment besoin d'aide, c'est un projet sérieux pour faire autre chose que d'avoir le dernier tweet du dernier kikoo à la mode
Hors ligne
#2 Le 22/12/2010, à 17:23
- pode
Re : Wget qui ne télécharge pas la page spécifiée, WTF o_0 ?
Lorsque tu ouvres une page avec un navigateur, en plus de simplement demander à récupérer une page web, le navigateur envoie divers en-têtes HTTP. En fonction des en-têtes, le serveur web peut répondre différemment.
Pour voir quels sont les en-têtes échangés entre le navigateur et le serveur, le must est d'utiliser le plug-in LiveHttpHeaders pour Firefox (je ne sais pas s'il y en a une version pour Chrome).
Le comportement peut aussi varier en fonction de cookies qu'aurait stockés le navigateur.
Firefox permet de visualiser les cookies utilisés, mais il y a aussi plein de plugs-in Firefox pour faire des choses plus poussées (par exemple : Add N Edit Cookies)
Pour le site que tu as donné en exemple, avec LiveHTTPHeaders, j'ai pu voir que, parmi tous les en-têtes envoyés par mon navigateur Firefox, il y avait (un peu tronqué) :
Accept-Language: fr,fr-FR
Donc, quand tu utilises la commande :
wget -O boulet.html http://twitter.com/justinbieber
le serveur va te renvoyer la page pour le langue par défaut, à savoir l'anglais.
Si tu veux la page en français, tu peux faire (avec wget ou avec curl) :
wget --header='Accept-Language: fr,fr-FR' -O boulet_fr_wget.html http://twitter.com/justinbieber
curl -H 'Accept-Language: fr,fr-FR' -o boulet_fr_curl.html http://twitter.com/justinbieber
Si tu veux la page en italien, tu peux faire (avec wget ou avec curl) :
wget --header='Accept-Language: it,it-IT' -O boulet_it_wget.html http://twitter.com/justinbieber
curl -H 'Accept-Language: it,it-IT' -o boulet_it_curl.html http://twitter.com/justinbieber
Un autre type d'en-tête induisant des comportements différents côté serveur est, typiquement, l'en-tête User-Agent.
Hors ligne