A voir également:
- [Python] Extractions de liens d'une page web
- Supprimer une page word - Guide
- Traduire une page web - Guide
- Web office - Guide
- Capture page web - Guide
- Enregistrer une page web en pdf - Guide
9 réponses
sebsauvage
Messages postés
32893
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 659
12 mai 2003 à 13:49
12 mai 2003 à 13:49
sgmllib ?
Arg... c'est prendre un marteau-pilon pour écraser une fraise.
Le module HTMLParser devrait suffir.
Ou même une simple expression régulière !
Par exemple, pour extraire tous les liens du fichier toto.html, je ferais ça:
import re
links_regexp = re.compile('<a href="?(.*?)"?>',re.IGNORECASE)
html = open('toto.html','rb').read()
print links_regexp.findall(html)
C'est nettement plus léger, et ça fonctionne très bien ! :-)
Arg... c'est prendre un marteau-pilon pour écraser une fraise.
Le module HTMLParser devrait suffir.
Ou même une simple expression régulière !
Par exemple, pour extraire tous les liens du fichier toto.html, je ferais ça:
import re
links_regexp = re.compile('<a href="?(.*?)"?>',re.IGNORECASE)
html = open('toto.html','rb').read()
print links_regexp.findall(html)
C'est nettement plus léger, et ça fonctionne très bien ! :-)
sebsauvage
Messages postés
32893
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 659
12 mai 2003 à 14:01
12 mai 2003 à 14:01
Si tu as besoin de parser des choses en plus (contenu de la balise <a>, autres balises), le module HTMLParser est très sympa !
Voici un exemple d'utilisation de HTMLParser qui parse les tableaux HTML:
http://sebsauvage.net/python/html2csv.py
Voici un exemple d'utilisation de HTMLParser qui parse les tableaux HTML:
http://sebsauvage.net/python/html2csv.py
J'avais pensé a utilisé CGI interface web est une bonne idée ,?
Sinon mon prog doit tourné sous linux et windows
Sinon mon prog doit tourné sous linux et windows
sebsauvage
Messages postés
32893
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 659
23 mai 2003 à 11:47
23 mai 2003 à 11:47
ça dépend: ton programme sera utilisé à partir de quoi ?
Une simple console (clavier+écran en mode texte), environnement graphique (Windows, KDE, X...?), ou par le web (navigateurs) ?
Le plus simple, c'est la console (ligne de commande).
Une simple console (clavier+écran en mode texte), environnement graphique (Windows, KDE, X...?), ou par le web (navigateurs) ?
Le plus simple, c'est la console (ligne de commande).
Pour l'instant je me limite à une cosole mais comme je veux aussi extraire des liens de pages en ligne il faudra peut êtrev un navigateur c'est pour cela que j'ai voulu utiliser CGI
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
sebsauvage
Messages postés
32893
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 659
23 mai 2003 à 12:03
23 mai 2003 à 12:03
ok...
Dans ce cas, oui en cgi ça peut être bien.
Si tu as besoin d'exemples de cgi Python, c'est là:
http://wikipython.flibuste.net/moin.py/CodesCGI
Dans ce cas, oui en cgi ça peut être bien.
Si tu as besoin d'exemples de cgi Python, c'est là:
http://wikipython.flibuste.net/moin.py/CodesCGI
Salut tt le monde
Je suis sous win2000 pro, et je veux essayer la commande python, j'ai ca comme erreur comment je fais pour la définir ?
>>> python
Traceback (most recent call last):
File "<stdin>", line 1, in ?
NameError: name 'python' is not defined
Merci
Je suis sous win2000 pro, et je veux essayer la commande python, j'ai ca comme erreur comment je fais pour la définir ?
>>> python
Traceback (most recent call last):
File "<stdin>", line 1, in ?
NameError: name 'python' is not defined
Merci
sebsauvage
Messages postés
32893
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 659
8 juil. 2003 à 17:30
8 juil. 2003 à 17:30
Hello !
Si tu vois déjà ">>>", c'est que tu es déjà dans Python !
Essai de taper:
print 1+2
Et pour quitter la ligne de commande Python, tape CTRL+Z.
Ensuite, je te conseille de créer des fichiers .py contenant tes programmes. Il suffira de faire python monprogramme.py pour exécuter le programme.
Si tu vois déjà ">>>", c'est que tu es déjà dans Python !
Essai de taper:
print 1+2
Et pour quitter la ligne de commande Python, tape CTRL+Z.
Ensuite, je te conseille de créer des fichiers .py contenant tes programmes. Il suffira de faire python monprogramme.py pour exécuter le programme.
sebsauvage
Messages postés
32893
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 659
>
ZcKy
8 juil. 2003 à 17:37
8 juil. 2003 à 17:37
ahum:
c:\> python monprogramme.py
3
ou bien
>>>import monprogramme.py
3
c:\> python monprogramme.py
3
ou bien
>>>import monprogramme.py
3
ZcKy
>
sebsauvage
Messages postés
32893
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
8 juil. 2003 à 17:54
8 juil. 2003 à 17:54
Merci seb
ca marche
ca marche
sebsauvage
Messages postés
32893
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 659
8 juil. 2003 à 17:37
8 juil. 2003 à 17:37
Je reviens sur ma suggestion d'utiliser le module HTMLParser.
Il est parfait, mais il ne supporte pas le code HTML invalide.
ça n'est pas un problème, sauf quand on veut parser le code HTML tout p*urri qu'on trouve sur internet (argleu).
SGMLParser, lui, supporte très bien l'HTML très mal formatté.
Je pourrai vous donner un exemple de code si ça vous intéresse (c'est très proche de HTMLParser).
Notez que comme XHTML ne fait pas partie de la norme SGML, SGMLParser ne traitera pas correctement les tags du style <br/>.
(Mais on peut s'en tirer avec 2 expressions régulières pour réécrire ces balises avant de les donner à manger à SGMLParser ; je pourrais les donner si ça intéresse quelqu'un).
signé: sebsauvage, qui s'est aperçu récemment que parser le code HTML trouvé "in-the-wild", c'est beaucoup, beaucoup plus délicat qu'il n'y paraît, mais que le monsieur il a trouvé des solutions :-)
(PS: je suis en train de m'amuser à écrire un proxy HTTP sous forme de CGI du genre de megaproxy.com ou nph-proxy)
Il est parfait, mais il ne supporte pas le code HTML invalide.
ça n'est pas un problème, sauf quand on veut parser le code HTML tout p*urri qu'on trouve sur internet (argleu).
SGMLParser, lui, supporte très bien l'HTML très mal formatté.
Je pourrai vous donner un exemple de code si ça vous intéresse (c'est très proche de HTMLParser).
Notez que comme XHTML ne fait pas partie de la norme SGML, SGMLParser ne traitera pas correctement les tags du style <br/>.
(Mais on peut s'en tirer avec 2 expressions régulières pour réécrire ces balises avant de les donner à manger à SGMLParser ; je pourrais les donner si ça intéresse quelqu'un).
signé: sebsauvage, qui s'est aperçu récemment que parser le code HTML trouvé "in-the-wild", c'est beaucoup, beaucoup plus délicat qu'il n'y paraît, mais que le monsieur il a trouvé des solutions :-)
(PS: je suis en train de m'amuser à écrire un proxy HTTP sous forme de CGI du genre de megaproxy.com ou nph-proxy)
Bonjour,
Je dois réaliser un petit crawler en python et j'ai un problème au niveau du parseur de page Web. Le problème est qu'un document html est codé en utilisant des code ( iso-8859-1 ou autre) et donc dans le code html je me retrouve avec des xx; ou encore à . Exist-il un moyen de convertir ces mots en utilisant le bon code de caractére.
Merci.
Je dois réaliser un petit crawler en python et j'ai un problème au niveau du parseur de page Web. Le problème est qu'un document html est codé en utilisant des code ( iso-8859-1 ou autre) et donc dans le code html je me retrouve avec des xx; ou encore à . Exist-il un moyen de convertir ces mots en utilisant le bon code de caractére.
Merci.
14 mai 2003 à 21:07
15 mai 2003 à 11:02
Mais tout dépend de tes contraintes.
Sous quel système devra tourner ton programme ?
Windows seul ? Linux seul ? Les deux ? autres ?
tcl/tk, inclu en standard dans Python (multiplateformes)
wxWindows, plus puissant, multiplatformes
Microsoft Windows MFC, Windows uniquement
GTK+, Unix/Linux, et éventuellement Windows
QT
Gnome
KDE
autre... ?
Python est capable d'utilise à peu près n'importe quel kit graphique, mais il faut faire un choix.