Parser un fichier RSS/Atom en Python

Python Aucun commentaire »

Sûrement vous avez déjà eu besoin de parser un document xml avec python , cela va être facile avec l’api DOM ou SAX fournis comme librairies standards avec python ,
mais si vous voulez parser un fichier RSS/Atom c’est plus la peine de passer par DOM ou SAX , il existe un module python qui est fait pour ça et qui facilite bien les choses
le module s’appel feedparser écrit par mark pilgrim l’auteur de ‘dive into python’ lui même , ce module utilise l’API SAX mais si elle n’est pas disponible chez vous , il va parcourir le flux en utilisant des expressions régulières donc ça marche toujours.

Feedparser est très facile à utiliser voici un exemple d’utilisation basique :

>>> from feedparser import parse
>>> myfeed = parse(”http://codemark.tuxfamily.org/feed”)
Pour avoir des informations relatives au feed lui même
>>> print myfeed[’feed’][’title’]
CodeMark
>>> myfeed[’feed’][’title’] #le résultat est toujours en unicode
u’CodeMark’
>>> myfeed.feed.title
u’CodeMark’
>>> myfeed.feed.link
u’http://codemark.tuxfamily.org’

Et on peut facilement parcourir tout les entrés existants

>>> for item in myfeed[’entries’]:
print item.title

Un autre Module Netvibes : TinyURL !
SOAP en Python
Librairie de validation javascript < 1Ko
Présentation de CookieCrumbler sous Zope

le module est disponible en téléchargement ici , avec une documentation complète

Partager cet article : Ces icônes sont des liens vers des sites de partage de signet sociaux où les lecteurs peuvent partager et découvrir de nouveaux liens.
  • Technorati
  • Digg
  • del.icio.us
  • blogmarks
  • Scoopeo
  • BlinkList
  • Furl
  • Reddit
  • Ma.gnolia
  • Slashdot
  • YahooMyWeb
  • Bumpzee
  • Spurl
  • Netscape
  • Book.mark.hu

Un autre Module Netvibes : TinyURL !

Netvibes Aucun commentaire »
TrashMail Une autre création !, voici un module netvibes simple mais très efficace .
Si vous avez des liens url longs (http://site.tld/page.php?id=KIDnjnDUIoKNDGVGFSgSGT&pg=10255ODOEjiejEOojEEDkj…) que vous voulez poster dans un forum ,ou bien les envoyer dans un email , parfois ces paramètres sont mélangés avec les balises html , enfin c’est pas très pratique , ce module va donc vous faciliter la vie , grace au service fourni gratuitement par tinyurl.com.
Un URL long devient donc un url de 15 caractères environ (exemple : http://tinyurl.com/Ikod5)
Personnellement j’utilise ce genre d’url quand je veux ajouter mon site dans une annuaire qui n’a pas un bon pagerank donc ça va influencer sur le mien, comme ça j’ai toujours des visiteurs , et google ne vois pas mon url dans l’annuaire
 
Module Tiny URL dans netvibes Add to Netvibes
Partager cet article : Ces icônes sont des liens vers des sites de partage de signet sociaux où les lecteurs peuvent partager et découvrir de nouveaux liens.
  • Technorati
  • Digg
  • del.icio.us
  • blogmarks
  • Scoopeo
  • BlinkList
  • Furl
  • Reddit
  • Ma.gnolia
  • Slashdot
  • YahooMyWeb
  • Bumpzee
  • Spurl
  • Netscape
  • Book.mark.hu

SOAP en Python

Python, tutoriels 5 Commentaires »

SOAP ?

Le SOAP (Simple Object Access Protocol) est un protocole d’échange d’information entre deux objets distants en format xml, il permet d’appeler une fonction distante et de récupérer son résultat .

Plusieurs sites publient leurs services pour qu’il soit accessible à tout le monde par exemple : altavista (service de traduction) , google (recherche ..) …

Donc l’utilisation du SOAP réside dans le faite d’appeler une ou plusieurs fonctions et d’en récupérer le résultat , mais le problème c’est que pour un service quelconque on connais pas les fonctions disponibles et même si on les connais , il nous faut bien savoir les paramètres qu’on doit passer à cette fonction , le typage etc , c’est pourquoi chaque service web utilisant SOAP, publie un fichier xml qui contient touts les fonctions disponibles et leur paramètres , leur type et l’objet en retour , ce fichier xml est structuré de manière que tout les clients SOAP puissent comprendre son contenu , c’est une normalisation standard appelé WSDL (Web Services Description Language).

Dans ces lignes qui vont venir je vais illustrer l’utilisation de SOAP en python à l’aide du module SOAPpy .

Comme vous le savez déjà python rend la programmation un jeux d’enfant , pour interroger un servce web rien de plus facile , plusieurs modules sont disponible pour atteindre notre but , (SOAPpy , ZSI ..) , j’ai choisi d’utiliser SOAPpy .

SOAPpy est disponible en téléchargement ici , et n’oublier pas d’installer PyXML et fpconst avant de procéder à l’installation de SOAPpy , maintenant passant au code :

Pour démarrer un service web rudimentaire :

Le serveur

>>> import SOAPpy

>>> def helloworld():

return “Hello World !”

>>> server = SOAPpy.SOAPServer((”127.0.0.1″, 80))

>>> server.registerFunction(helloworld)

>>> server.serve_forever()

Le client :

>>> import SOAPpy

>>> server = SOAPpy.SOAPProxy(”http://127.0.0.1:80/”)

>>> print server.helloworld()

Simple non ?

Maintenant on va faire quelque chose de plus intéressant

Altavista possède un service web SOAP , qui va nous permettre de faire une traduction sur un texte , donc on a besoin de connaître la fonction qu’on doit appeler et les paramètres à passer non ? on a besoin donc besoin du fameux fichier wsdl .

On a donc notre fichier wsdl , il contient tout ce qu’on veux savoir il contient aussi l’adresse le service web SOAP de babelfish .

On va commencer par récupérer toutes les fonctions fournis dans ce fichier

>>> from SOAPpy import WSDL

>>> fichier_wsdl = ‘http://www.xmethods.net/sd/2001/BabelFishService.wsdl’

>>> wsdl = WSDL.Proxy(fichier_wsdl)

>>> print wsdl.methods.keys()

[u’BabelFish’]

>>>

l’objet wsdl nous fourni une liste nommée methodes , qui contient toutes les fonctions trouvés dans le fichier de définition wsdl

voici le code si on veux connaître comment utiliser cette fonction :

>>> info = wsdl.methods[’BabelFish’]

>>> for param in info.inparams:

print param.name , ‘:’ , param.type

translationmode : (u’http://www.w3.org/2001/XMLSchema’, u’string’)

sourcedata : (u’http://www.w3.org/2001/XMLSchema’, u’string’)

>>> for param in info.outparams:

print param.name , ‘:’ , param.type

return : (u’http://www.w3.org/2001/XMLSchema’, u’string’)

donc d’après le fichier wsdl , altavista nous fournis une seule fonction nommée BabelFish qui reçoit deux paramètres le premier translationmode (le mode de traduction) et le deuxième sourcedata (le texte à traduire) .

on va appeler cette fonction pour traduire un texte en français vers l’anglais

>>> resultat = wsdl.BabelFish(’fr_en’,'oui , non , quoi , comment ?’)

>>> print resultat

yes, not, what, how?

Voilà donc notre texte traduit

Ressources :

xmethodes et programmableweb : pour une liste de services web

http://www.xmethods.net/tryit.html?url=VOTRE_FICHIER_WSDL : pour tester un service web directement

soapUI : un utilitaire open source pour développer et tester votre service web

Partager cet article : Ces icônes sont des liens vers des sites de partage de signet sociaux où les lecteurs peuvent partager et découvrir de nouveaux liens.
  • Technorati
  • Digg
  • del.icio.us
  • blogmarks
  • Scoopeo
  • BlinkList
  • Furl
  • Reddit
  • Ma.gnolia
  • Slashdot
  • YahooMyWeb
  • Bumpzee
  • Spurl
  • Netscape
  • Book.mark.hu

Librairie de validation javascript < 1Ko

Javascript 3 Commentaires »
Si vous créer souvent des formulaires vous aurez sûrement besoin de valider ses champs , quand je cherche dans le net je trouve des librairies très complète et de grande taille , ce qui ralenti le chargement de la page , et dans la plupart des temps j’ai pas besoin de toutes ces fonctionnalités .
Voici donc une librairie qui fait 817 Octets de taille et 663 Octets compressé !! , mais qui contient tout ce dont j’ai besoin dans la plupart du temps.
Description des fonction qu’elle contient :
 
Toutes les fonctions retournent un boolean sauf la fonction O() et V()
La fonction O() retourne un objet existant dans la page , au lieu d’utiliser document.getElementById(’id_elem’)
La fonction V() retourne la valeur d’un champ
La fonction IsEmpty() : Test si un champ est vide ou non
La fonction IsMail() : Test la validité d’un adresse mail
La fonction isIP() : Test la validité d’un adresse IP
La Fonction isURL() : Test la validité d’un adresse web
La Fonction isSSN() : Test la validité du format du numero de securité social
La Fonction IsNumeric() : Test si le champ contient une valeur numerique
 
La Fonction O() :

La Fonction V() :

La Fonction IsEmpty() :

La Fonction IsMail() :

La Fonction isIP() -IPV4- :

La Fonction isURL() :

La Fonction isSSN() :

La Fonction IsNumeric() :

 
Télécharger la librairie compressée ou dans son état normale
La compression à été faite avec l’outil Dojo ShrinkSafe
   
Partager cet article : Ces icônes sont des liens vers des sites de partage de signet sociaux où les lecteurs peuvent partager et découvrir de nouveaux liens.
  • Technorati
  • Digg
  • del.icio.us
  • blogmarks
  • Scoopeo
  • BlinkList
  • Furl
  • Reddit
  • Ma.gnolia
  • Slashdot
  • YahooMyWeb
  • Bumpzee
  • Spurl
  • Netscape
  • Book.mark.hu