Python : charming snake
sebsauvage
-
sebsauvage -
sebsauvage -
Vraiment, j'adore ce language, Python.
Un ami m'a demandé si je pouvais récupérer automatiquement le catalogue de tout ce qui est disponible chez Ult*ma Strasbourg (jeux et DVD d'occasion).
Problème: leur catalogue est réparti sur des centaines de pages HTML séparées, par catégorie et lettre de l'alphabet. Impensable de récupérer tout ça à la main.
J'ai pris ça comme une occasion de m'exercer en Python.
J'ai bricolé un script Python qui effectue les requêtes HTTP pour aller récupérer toutes les pages (en passant par le proxy), décortique le code HTML, extrait les données et sort un fichier CSV (pour Excel).
Ce que je trouve génial, c'est que ce script ne fait que 30 lignes de code effectif (le reste étant commentaires et lignes vides).
Je ne pensais pas que ça serait aussi compact.
Je n'arrête pas de m'émerveiller de l'efficacité, la concision et la lisibilité de ce language.
http://www.python.org
Si il y en a que ça intéresse, je pourrai envoyer le script par mail (je n'ai pas encore eu le temps de le mettre sur mon site).
Je ne regrette toujours pas d'avoir abandonné perl !
Un ami m'a demandé si je pouvais récupérer automatiquement le catalogue de tout ce qui est disponible chez Ult*ma Strasbourg (jeux et DVD d'occasion).
Problème: leur catalogue est réparti sur des centaines de pages HTML séparées, par catégorie et lettre de l'alphabet. Impensable de récupérer tout ça à la main.
J'ai pris ça comme une occasion de m'exercer en Python.
J'ai bricolé un script Python qui effectue les requêtes HTTP pour aller récupérer toutes les pages (en passant par le proxy), décortique le code HTML, extrait les données et sort un fichier CSV (pour Excel).
Ce que je trouve génial, c'est que ce script ne fait que 30 lignes de code effectif (le reste étant commentaires et lignes vides).
Je ne pensais pas que ça serait aussi compact.
Je n'arrête pas de m'émerveiller de l'efficacité, la concision et la lisibilité de ce language.
http://www.python.org
Si il y en a que ça intéresse, je pourrai envoyer le script par mail (je n'ai pas encore eu le temps de le mettre sur mon site).
Je ne regrette toujours pas d'avoir abandonné perl !
A voir également:
- Python : charming snake
- Citizen code python avis - Accueil - Outils
- Mot secret python pix ✓ - Forum Python
- Python est introuvable. exúcutez sans argument pour procúder ó l ✓ - Forum Python
- Python par la pratique : 101 exercices corrigés pdf - Forum Python
- Citizen code python solution - Forum Python
13 réponses
Oui moi ca m'interresse beaucoup. Si tu pouvais me l'envoyer ce serai cool =)
En ce qui concerne python je n'ai jamais vu de language de script aussi puissant. sans oublier que tu peut généré un .exe (un script fait ca) C'est vraiment génial comme language.
Nous on s'en sert pour ce simplifier la vie et ca marche du tonnerre. On sen sert pour verifier nos log et rapport d'exploitation, ca nous fait gagner facilement 1h tous les matins.
Bref python c'est GENIAL =) et en plus c'est portable, que demande le peuple =)
++ Ripper
PS : a quand une rubrique python sur CCM ????
En ce qui concerne python je n'ai jamais vu de language de script aussi puissant. sans oublier que tu peut généré un .exe (un script fait ca) C'est vraiment génial comme language.
Nous on s'en sert pour ce simplifier la vie et ca marche du tonnerre. On sen sert pour verifier nos log et rapport d'exploitation, ca nous fait gagner facilement 1h tous les matins.
Bref python c'est GENIAL =) et en plus c'est portable, que demande le peuple =)
++ Ripper
PS : a quand une rubrique python sur CCM ????
JunKy Ripper, c'est paaaaarti par email.
Tu utilises quoi pour faire des EXE ?
L'Installer de McMillan ?
(J'ai testé ça marche très bien !)
Sinon il y a py2exe, mais ça ne pack pas tout dans un seul fichier EXE. Remarque c'est bien aussi, surtout si on veut juste mettre à jour le programme principal (un petit exe à livrer).
Sinon j'ai essayé un peu wxPython et Boa : ça permet de créer des applications graphique avec un joli RAD comme celui de Delphi ou VisualBasic (et le débogueur est intégré).
Très très sympa !
ça permet de développer des applications graphiques très complexes (et en plus portables puisque wxWindows existe aussi sous Unix/Linux).
J'ai trouvé aussi tout un tas de petits programmes sympa: un débogueur distant (HapDebuger) qui permet de déboguer un script Python fonctionnant même sur une autre machine,
PIL, la librairie de traitement d'images (j'ai juste regardé la doc, je n'ai pas eu le temps de l'essayer),
win32all, qui permet d'accéder aux API Windows à partir de Python (base de registre, réseau, process, services, COM/DCOM, etc.),
Jython, l'interpréteur Python écrit 100% en Java,
etc.
C'est fou le nombre de choses qu'on peut faire.
Tant que j'y suis, voilà une adresse sympa qui rassemble plein de liens intéressants sur Python en une seule page:
http://www.rimbault.net/python/
J'aimerais bien aussi trouver un compilateur JIT (Just-in-time, comme pour Java ou C#, histoire de booster les performances).
Il y a bien un projet, Psyco, mais c'est juste un prototype:
http://homepages.ulb.ac.be/~arigo/psyco/
Ce qui est bien, c'est que Python ne cesse d'évoluer et de grandir.
signé: Seb, charmé par le Python... ;-)
Tu utilises quoi pour faire des EXE ?
L'Installer de McMillan ?
(J'ai testé ça marche très bien !)
Sinon il y a py2exe, mais ça ne pack pas tout dans un seul fichier EXE. Remarque c'est bien aussi, surtout si on veut juste mettre à jour le programme principal (un petit exe à livrer).
Sinon j'ai essayé un peu wxPython et Boa : ça permet de créer des applications graphique avec un joli RAD comme celui de Delphi ou VisualBasic (et le débogueur est intégré).
Très très sympa !
ça permet de développer des applications graphiques très complexes (et en plus portables puisque wxWindows existe aussi sous Unix/Linux).
J'ai trouvé aussi tout un tas de petits programmes sympa: un débogueur distant (HapDebuger) qui permet de déboguer un script Python fonctionnant même sur une autre machine,
PIL, la librairie de traitement d'images (j'ai juste regardé la doc, je n'ai pas eu le temps de l'essayer),
win32all, qui permet d'accéder aux API Windows à partir de Python (base de registre, réseau, process, services, COM/DCOM, etc.),
Jython, l'interpréteur Python écrit 100% en Java,
etc.
C'est fou le nombre de choses qu'on peut faire.
Tant que j'y suis, voilà une adresse sympa qui rassemble plein de liens intéressants sur Python en une seule page:
http://www.rimbault.net/python/
J'aimerais bien aussi trouver un compilateur JIT (Just-in-time, comme pour Java ou C#, histoire de booster les performances).
Il y a bien un projet, Psyco, mais c'est juste un prototype:
http://homepages.ulb.ac.be/~arigo/psyco/
Ce qui est bien, c'est que Python ne cesse d'évoluer et de grandir.
signé: Seb, charmé par le Python... ;-)
Merci seb =)
Je verrai ca ce soir en rentrant.
Pour la création de .exe c'est py2exe que j'utilise. En fait je suis débutant en python c'est un collègue qui est a fond dedans qui m'a initier et je doit avouer que je ne suis vraiment pas decu.
Pour la gestion des API windows, nous on s'en sert pas mal (notament la base de registre et les fichiers ini), C'est génial. La gestion des process esst aussi très bien faites.
Merci pour ton lien mais je le connaissai deja c'est ma page de référence en ce qui concerne python =)
Par contre je ne savait pas qu'il y avait des environnement RAD pour python ca m'interresse fortement. Je vais très vite allez voir wxPython (autant prendre celui qui est portable :p)
Merci pour toutes ces info et a bientôt chez les reptiles =)
++ Ripper
Je verrai ca ce soir en rentrant.
Pour la création de .exe c'est py2exe que j'utilise. En fait je suis débutant en python c'est un collègue qui est a fond dedans qui m'a initier et je doit avouer que je ne suis vraiment pas decu.
Pour la gestion des API windows, nous on s'en sert pas mal (notament la base de registre et les fichiers ini), C'est génial. La gestion des process esst aussi très bien faites.
Merci pour ton lien mais je le connaissai deja c'est ma page de référence en ce qui concerne python =)
Par contre je ne savait pas qu'il y avait des environnement RAD pour python ca m'interresse fortement. Je vais très vite allez voir wxPython (autant prendre celui qui est portable :p)
Merci pour toutes ces info et a bientôt chez les reptiles =)
++ Ripper
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Voilà Marmot, c'est envoyé !
On ne dira jamais assez de bien des expressions régulières :-)
C'est le genre de truc que tout langage de programmation qui se respecte devrait posséder.
C'est un peu difficile à gober au début, mais après ça fait gagner un temps fabuleux !
On ne dira jamais assez de bien des expressions régulières :-)
C'est le genre de truc que tout langage de programmation qui se respecte devrait posséder.
C'est un peu difficile à gober au début, mais après ça fait gagner un temps fabuleux !
JunKy Ripper, moi c'est pareil.
C'est un collègue qui était fou de Python.
Au début quand il me l'a présenté, je me suis dit : "C'est quoi ce language merdique où il faut indenter le code pour définir les blocs ? On se croirait revenu au temps du Cobol. Beurk."
Et puis quand j'ai vu tout ce qu'il arrivait à faire avec, et sans se fatiguer en plus, je me suis dit que ça valait peut-être le coup d'y jeter un coup d'oeil...
(Histoire de faire profiter des bonnes adresses:)
J'ai trouvé une version de la doc python au format CHM.
Beaucoup plus pratique que la version HTML : on peut facilement faire des recherches, et ça prend moins de place sur disque dur.
Python Shelf:
http://www.orgmf.com.ar/condor/pytstuff.html
http://www.orgmf.com.ar/condor/pyshelf22.zip (6,2 Mo)
C'est un collègue qui était fou de Python.
Au début quand il me l'a présenté, je me suis dit : "C'est quoi ce language merdique où il faut indenter le code pour définir les blocs ? On se croirait revenu au temps du Cobol. Beurk."
Et puis quand j'ai vu tout ce qu'il arrivait à faire avec, et sans se fatiguer en plus, je me suis dit que ça valait peut-être le coup d'y jeter un coup d'oeil...
(Histoire de faire profiter des bonnes adresses:)
J'ai trouvé une version de la doc python au format CHM.
Beaucoup plus pratique que la version HTML : on peut facilement faire des recherches, et ça prend moins de place sur disque dur.
Python Shelf:
http://www.orgmf.com.ar/condor/pytstuff.html
http://www.orgmf.com.ar/condor/pyshelf22.zip (6,2 Mo)
Coooool merci pour le lien
ca c'est utile.
Vivement qu'il fasse la meme chose en francais =)
Pour ce qui est de l'indentation, moi aussi j'était retissant au debut. Mais finalement c'est pas plus mal puis de toutes facon qu'il y ai des {} ou pas de toutes facon tu indente donc .....
Encore merci pour la doc en chm
++ Ripper
ca c'est utile.
Vivement qu'il fasse la meme chose en francais =)
Pour ce qui est de l'indentation, moi aussi j'était retissant au debut. Mais finalement c'est pas plus mal puis de toutes facon qu'il y ai des {} ou pas de toutes facon tu indente donc .....
Encore merci pour la doc en chm
++ Ripper
Salut sebsauvage ;o)
Je suis aussi interessé par ton script pour regarder à quoi ressemble Python.
Merci
-= Bobinours =-
Je suis aussi interessé par ton script pour regarder à quoi ressemble Python.
Merci
-= Bobinours =-
Bobinours, ayé, c'est envoyé.
Il y a aussi 2 ou 3 scripts sur ma page:
http://sebsauvage.net/python/
Il y a aussi une collection de petits script simples sur:
http://www.lowerstandard.com/python/
(mon préféré, c'est PageDumper6000.py ;-)
Il y a aussi 2 ou 3 scripts sur ma page:
http://sebsauvage.net/python/
Il y a aussi une collection de petits script simples sur:
http://www.lowerstandard.com/python/
(mon préféré, c'est PageDumper6000.py ;-)
Salut SebSauvage,
J'aimerais bien que tu m'envois ton petit script magique.
Je débute en Python, c'est cool..
Merci d'avance !
Mart
J'aimerais bien que tu m'envois ton petit script magique.
Je débute en Python, c'est cool..
Merci d'avance !
Mart
et pourqoi pas moi, je verrai a qoi ça ressemble , je voulais commencer a apprendre le perl, mais si python est meilleur, allons y a fond, su moment que je termine le C++, vite.Je l'attends sebsauvage
tafiscobar
tafiscobar
C'est envoyé, tafiscobar.
A propos, JunKy Ripper, pour faire des EXE j'ai aussi essayé McMillan Installer.
http://www.mcmillan-inc.com/install5_ann.html
Avantage sur py2exe: ça créé un seul fichier EXE.
(en fait, le fichier EXE décompresse ses DLL et PYD pendant le fonctionnement du programme et les efface automatiquement quand il termine).
ça permet d'avoir un seul fichier EXE (mais bon, on s'en tire toujours avec un 'Hello world' à un peu plus de 500 ko, DLL de Python oblige.)
Un petit truc pour réduire la taille des EXE/DLL/PYD générés par py2exe: tu peux utiliser UPX.
C'est gratuit et ça permet de compresser les fichiers exécutables.
http://upx.sourceforge.net/
A propos, JunKy Ripper, pour faire des EXE j'ai aussi essayé McMillan Installer.
http://www.mcmillan-inc.com/install5_ann.html
Avantage sur py2exe: ça créé un seul fichier EXE.
(en fait, le fichier EXE décompresse ses DLL et PYD pendant le fonctionnement du programme et les efface automatiquement quand il termine).
ça permet d'avoir un seul fichier EXE (mais bon, on s'en tire toujours avec un 'Hello world' à un peu plus de 500 ko, DLL de Python oblige.)
Un petit truc pour réduire la taille des EXE/DLL/PYD générés par py2exe: tu peux utiliser UPX.
C'est gratuit et ça permet de compresser les fichiers exécutables.
http://upx.sourceforge.net/
Allez on s'amuse encore avec Python.
Dans la série "je-fais-tout-en-une-ligne", ce soir (oui je sais il est tard) : "Comment extraire toutes les adresses email d'un fichier".
email_extractor.py, 2 lignes (j'avais dit une ligne ???):
import sys,re
print '\n'.join(re.findall('([\w\.\-]+@[\w\.\-]+)',sys.stdin.read()))
Voilà, c'est tout.
Essayez avec n'importe quel fichier (texte, HTML, EXE...) qui contient des adresses email:
python email_extractor.py < monfichier.html
Maintenant, exercice: essayez de faire aussi compact dans un autre langage :-)
Interdit de l'utiliser pour spammer ! :-)
Qui a dit que je m'ennuie pour faire de tels scripts ?
Dans la série "je-fais-tout-en-une-ligne", ce soir (oui je sais il est tard) : "Comment extraire toutes les adresses email d'un fichier".
email_extractor.py, 2 lignes (j'avais dit une ligne ???):
import sys,re
print '\n'.join(re.findall('([\w\.\-]+@[\w\.\-]+)',sys.stdin.read()))
Voilà, c'est tout.
Essayez avec n'importe quel fichier (texte, HTML, EXE...) qui contient des adresses email:
python email_extractor.py < monfichier.html
Maintenant, exercice: essayez de faire aussi compact dans un autre langage :-)
Interdit de l'utiliser pour spammer ! :-)
Qui a dit que je m'ennuie pour faire de tels scripts ?