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 12/07/2014, à 00:09

Compte anonymisé

[Résolu][Bash] Récupération information site

Bonjour,

Je souhaite récupérer des informations au niveau d'un site (plus précisément vers le site Kimsufi).
En fait, l'information pertinente (assez logique) correspond à la disponibilité des serveurs.
Cependant, lorsque je réalise un "curl/wget", je ne récupère que le résultat suivant :

...
<div class="elapsed-time-since-last-delivery" style="display: none;" qtlid="39233;41552">
                                        Dernier serveur livré : <br> {value}
...

Y-a-t-il une possibilité de récupérer le véritable contenu à la place de {value} ?
Merci d'avance.

Dernière modification par Compte anonymisé (Le 12/07/2014, à 16:47)

#2 Le 12/07/2014, à 12:31

compte supprimé

Re : [Résolu][Bash] Récupération information site

Je suis pas un pro des techs web, mais concernant ta question je te dirais que c'est le problème (assez courant de nos jour), des pages qui utilisent javascript avec des requêtes secondaires à tout va.

Il faut donc suivre à la trace les requêtes et ainsi se substituer à javascript.
En regardant les requêtes de la page, j'en suis arrivé à la logique suivante pour satisfaire ta demande (avec par exemple le SK-2 qui n'est plus disponible):

Dans le code de ta page principale, tu recherches si le serveur est dispo : tu le vois grâce à "En cours de réapprovisionnement" dans le bloc de code correspondant au produit.
Dans ce bloc tu trouveras la référence du produit : data-ref="142sk2".

Après il font une requête pour avoir la date du dernier serveur livré à l'adresse  :

https://ws.ovh.com/dedicated/r2/ws.disp … stDelivery

Pour les paramètres ils envoient :

callback    Request.JSONP.request_map.request_2
params    {"gamme":"142sk2"}

Donc ils font la requête (avant l'encodage de l'url):
https://ws.ovh.com/dedicated/r2/ws.dispatcher/getElapsedTimeSinceLastDelivery?callback=Request.JSONP.request_map.request_2&params={"gamme":"142sk2"}

le premier paramètre tu t'en fou, car c'est avec ça qu'ils repèrent à quelle requête correspond telle value.
le deuxième c'est la référence et tu la connais vu ce que j'ai dis ci dessus.

donc on a l'info en faisant un GET vers :

https://ws.ovh.com/dedicated/r2/ws.dispatcher/getElapsedTimeSinceLastDelivery?params={"gamme":"142sk2"}

En encodant l'url et en utilisant wget  ça donne :

wget "https://ws.ovh.com/dedicated/r2/ws.dispatcher/getElapsedTimeSinceLastDelivery?params=%7B%22gamme%22%3A%22142sk2%22%7D"

et tu as la réponse du type :

{"answer":"9927","version":"1.0","error":null,"id":0}

où dans answer tu as le nombre de secondes écoulées depuis l'indisponibilité du serveur, tu n'as plus qu'à calculer.

Voilà, il reste plus qu' a coder le concept dans ton langage préféré !!

Dernière modification par sogyam (Le 12/07/2014, à 18:48)

#3 Le 12/07/2014, à 14:52

Compte anonymisé

Re : [Résolu][Bash] Récupération information site

Bonjour sogyam,

Merci pour ta réponse/solution smile !
Une question supplémentaire : le paramètre "callback" qui n'est pas nécessaire dans notre cas, pourquoi si on le passe dans l'URL (comme le ferait un appel depuis un navigateur), nous n'obtenons pas le même résultat, mais la valeur "null" ?

C'est juste pour ma curiosité.

Merci.

#4 Le 12/07/2014, à 16:02

compte supprimé

Re : [Résolu][Bash] Récupération information site

Parce que ton url n'est pas encodée si tu fait :

wget https://ws.ovh.com/dedicated/r2/ws.dispatcher/getElapsedTimeSinceLastDelivery?callback=Request.JSONP.request_map.request_2&params=%7B%22gamme%22%3A%22142sk2%22%7D

Le serveur te répond sans erreur.
Et la requête envoyée via le navigateur a une url encodée.
j'ai juste donné l'url non encodée pour la forme, car c'est plus lisible.

essayes :

https://ws.ovh.com/dedicated/r2/ws.disp … 2sk2%22%7D

NB: j'ai modifié le permier poste pour être plus clair (en plus il y avait une typo ...)

Dernière modification par sogyam (Le 12/07/2014, à 18:26)

#5 Le 12/07/2014, à 16:46

Compte anonymisé

Re : [Résolu][Bash] Récupération information site

Merci encore pour les explications.
Je ferme le poste.

#6 Le 12/07/2014, à 19:36

compte supprimé

Re : [Résolu][Bash] Récupération information site

De rien c'est le but du forum  !
Mais même si la méthode reste valable pour récupérer le la date et l'heure du dernier serveur livré à la place de "value", je viens de m'apercevoir que c'est en carton pour voir si les serveurs sont disponibles.

En effet, le ""En cours de réapprovisionnement" " est présent partout pour chaque produit ... oups , donc connerie de ma part dite plus haut .C'est l'affichage qui varie selon la disponibilité.
D'ailleurs, même si le serveur est disponible, le méthode ci dessus te donne le temps écoulé depuis la dernière livraison.

Il faut scruter le fichier json suivant pour  avoir la disponibilité :

https://ws.ovh.com/dedicated/r2/ws.dispatcher/getAvailability2

#7 Le 12/07/2014, à 23:18

Compte anonymisé

Re : [Résolu][Bash] Récupération information site

De nouveau merci pour ta persévérance.
C'est la solution finale que tu m'offres sur un plateau smile !

Ton investigation s'est uniquement basé sur du "Firebug" ou équivalent ?

#8 Le 13/07/2014, à 12:07

compte supprimé

Re : [Résolu][Bash] Récupération information site

Oui uniquement sur Firebug.