jeudi 17 avril 2014

pgScript - un langage de scripting pour PostgreSql

PostgreSql supporte bien entendu les procédures stockées, trigger, fonction et toutes les fonctionnalités attendue et souhaitée.

Par contre, utilisé des procédures stockées pour faire des tests de faisabilités ou études d'information en vue d'un développement future, ce n'est pas franchement pratique.

Je m'intéresse de plus près à la "couverture de stock" en vue d'une implémentation dans le soft maison.
Avant de me lancer dans l'analyse et développement, je voudrais faire différentes études et corrélations sur les données... que nous avons en grande quantité.
Se lancer dans le développement d'une stored proc de test ne me paraît pas être l'approche la plus appropriée.

Après quelques recherches, j'ai trouvé une excellent référence sur PGScript (aussi appelé PGS) qui permet justement de faire du scripting rapidos... histoire de faire différents vérifications ou traitements.


Un excellent article, pas trop long, assez complet et structuré... à lire:

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.


installer PIP sous windows

Pip est un utilitaire bien pratique pour installer des bibliothèques Python.

Cet utilitaire est très bien supporté sous Linux et Mac... mais son installation sous Windows diffère un peu.
Même si je préfère mes système *NIX, au travail je n'ai pas vraiment le choix de ma plateforme... il faut donc des solutions

Heureusement, il y a PIP for Windows :-)


C'est agréable de ne pas devoir tourner en rond pour trouver une solution

Ressource