mardi 1 avril 2014

Interroger le suivit d'un Colis GLS en Python

Prenons l'exemple du site de GLS qui propose une page de tracking pour ses colis

https://gls-group.eu/BE/en/home

 En utilisant la fenêtre à l'aide de la barre d'outil de développement de FireFox, ont apprend ceci

  1. Le <form> utilise la méthode GET sur track-trace
  2. La zone de saisie <input> se nomme tnav-tracking
Nous allons donc pouvoir interroger le site et obtenir une réponse.
Pour nous aider dans cette tâche, nous allons utiliser la bibliothèque httplib2 que vous aurez peut-être besoin d'installer.

Voici le petit bout de code en Python qui permet d'interroger le site de tracking:

from httplib2 import Http
from urllib import urlencode

# Important de désactiver la verif des certificat
#
h = Http(disable_ssl_certificate_validation=True)

# Créer un dictionnaire avec les données du formulaire
# Le numéro de colis a été modifié (ce n'est plus un vrai)!
#
data = { 'tnav-tracking':'716323112233' }
resp, content = h.request( "http://gls-group.eu/BE/en/track-trace", "GET", urlencode(data) )

print( resp )

La dernière ligne affiche le résultat de la requête (voir ci-dessous) contenu dans resp qui affiche un status 200 (donc OK) J'ai bien entendu maquillé les informations dans les cookies

{'status': '200', 'content-location': 'https://gls-group.eu/BE/en/track-trace',
'content-language': 'en-US', 'transfer-encoding': 'chunked', 'set-cookie': 'BIGi
pServerp_portal2_prod=xxxxx; path=/, TSc80417=xxxxx; Path=/, TSc80417_31=xxxxx; Path=/', 
'date': 'Tue, 01 Apr 2014 08:27:30 GMT', 'content-type': 'text/html; charset=UTF-8'
}

La variable content contient, quant a elle, la page html (format brute) retourné par le serveur de GLS.
Cette dernière faisant 42Ko, je ne vais pas la joindre à cet article.


Aucun commentaire: