Python : charming snake

Fermé
sebsauvage - 31 janv. 2002 à 18:03
 sebsauvage - 2 févr. 2002 à 02:03
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 !

13 réponses

Marmot Messages postés 579 Date d'inscription lundi 14 janvier 2002 Statut Membre Dernière intervention 17 août 2006 69
31 janv. 2002 à 20:29
Chouette, tu vas pouvoir virer PERL de la catégorie langage pour le remplacer par Python :)
0
JunKy Ripper Messages postés 211 Date d'inscription mardi 18 décembre 2001 Statut Membre Dernière intervention 6 mai 2002 23
31 janv. 2002 à 22:05
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 ????
0
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... ;-)
0
JunKy Ripper Messages postés 211 Date d'inscription mardi 18 décembre 2001 Statut Membre Dernière intervention 6 mai 2002 23
1 févr. 2002 à 11:13
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
0
Marmot Messages postés 579 Date d'inscription lundi 14 janvier 2002 Statut Membre Dernière intervention 17 août 2006 69
1 févr. 2002 à 09:58
Envoie moi aussi le script STP, j'aimerai voir ce que tu as utilisé pour l'extract HTML
0

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 !
0
Marmot Messages postés 579 Date d'inscription lundi 14 janvier 2002 Statut Membre Dernière intervention 17 août 2006 69
1 févr. 2002 à 15:49
Pfffff, lamentable. Dire que je me suis pris la tête avec la lib SGML pour faire un truc que l'emploi des expressions régulière aurait résolu en deux coup de cuillère à pot.

(le truc en SGML venait d'un tutoriel, ça marchait mais j'arrivais pas à comprendre pq d'où le temps passé...)
0
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)
0
JunKy Ripper Messages postés 211 Date d'inscription mardi 18 décembre 2001 Statut Membre Dernière intervention 6 mai 2002 23
1 févr. 2002 à 13:01
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
0
Bobinours Messages postés 2898 Date d'inscription jeudi 26 avril 2001 Statut Membre Dernière intervention 21 mars 2013 504
1 févr. 2002 à 15:42
Salut sebsauvage ;o)

Je suis aussi interessé par ton script pour regarder à quoi ressemble Python.
Merci

-= Bobinours =-
0
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 ;-)
0
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
0
C'est envoyé, Mart.
0
tafiscobar Messages postés 1277 Date d'inscription jeudi 7 décembre 2000 Statut Contributeur Dernière intervention 26 février 2009 177
1 févr. 2002 à 22:25
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
0
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/
0
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 ?
0