A voir également:
- Html parser python
- Citizen code python avis - Accueil - Outils
- Editeur html - Télécharger - HTML
- Python est introuvable. exúcutez sans argument pour procúder ó l - Forum Python
- Msxml 4.0 sp3 parser - Forum Logiciels
- Espace html ✓ - Forum HTML
7 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 662
3 mai 2004 à 14:11
3 mai 2004 à 14:11
J'ai donné un exemple pour récupérer tout ce qui se trouve entre 2 tags précis sans utiliser ni expressions régulières ni HTMLParser.
http://www.commentcamarche.net/forum/affich-655749-%5BPython%5D-HTML-parsing#15
http://www.commentcamarche.net/forum/affich-655749-%5BPython%5D-HTML-parsing#15
sebsauvage
Messages postés
32893
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 662
3 mai 2004 à 15:32
3 mai 2004 à 15:32
Ben... tu ouvre le fichier !
file = open("monfichier.dat","rb")
data = file.read()
file.close()
(à condition que le fichier tienne en mémoire).
file = open("monfichier.dat","rb")
data = file.read()
file.close()
(à condition que le fichier tienne en mémoire).
sebsauvage
Messages postés
32893
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 662
3 mai 2004 à 12:10
3 mai 2004 à 12:10
Hello !
Tu as 3 solutions:
- utiliser la simple recherche de chaînes (.find(), etc.)
- utiliser les expressions régulières
- utiliser HTMLParser
Pour les expressions régulières et le HTMLParser, j'ai mis des exemples là:
http://sebsauvage.net/python/snyppets/index.html#getlinks1
Note que la solution avec le .find() peut dans certains cas être beaucoup plus rapide que les 2 autres.
Il y a également un sujet de discussion sur ça ici:
http://www.commentcamarche.net/forum/affich-655749-%5BPython%5D-HTML-parsing
http://www.commentcamarche.net/forum/affich-648645-%5BPython%5D-HTMLParser-Handle_StartTag
http://www.commentcamarche.net/forum/affich-289535-%5BPython%5D-Extractions-de-liens-d%27une-page-web
Tu as 3 solutions:
- utiliser la simple recherche de chaînes (.find(), etc.)
- utiliser les expressions régulières
- utiliser HTMLParser
Pour les expressions régulières et le HTMLParser, j'ai mis des exemples là:
http://sebsauvage.net/python/snyppets/index.html#getlinks1
Note que la solution avec le .find() peut dans certains cas être beaucoup plus rapide que les 2 autres.
Il y a également un sujet de discussion sur ça ici:
http://www.commentcamarche.net/forum/affich-655749-%5BPython%5D-HTML-parsing
http://www.commentcamarche.net/forum/affich-648645-%5BPython%5D-HTMLParser-Handle_StartTag
http://www.commentcamarche.net/forum/affich-289535-%5BPython%5D-Extractions-de-liens-d%27une-page-web
psykotrop
Messages postés
4
Date d'inscription
lundi 3 mai 2004
Statut
Membre
Dernière intervention
3 mai 2004
1
3 mai 2004 à 15:27
3 mai 2004 à 15:27
Comment adapter ton dernier exemple :
# Nos données à tester:
data = """aaaa<!-- Begin : Toto -->bbb<!-- End : Toto est OK -->ccc
<!-- Begin : Toto --> Encore un autre ! dddd<!-- End : Toto est OK -->"""
en utilisant un fichier a la place du data= ?
# Nos données à tester:
data = """aaaa<!-- Begin : Toto -->bbb<!-- End : Toto est OK -->ccc
<!-- Begin : Toto --> Encore un autre ! dddd<!-- End : Toto est OK -->"""
en utilisant un fichier a la place du data= ?
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 662
3 mai 2004 à 18:04
3 mai 2004 à 18:04
Dans ce cas, tu peux prendre HTMLParser et:
- implémenter handle_data() pour récupérer uniquement le texte entre les balides.
- implémenter handle_starttag() et ajouter seulement un retour à la ligne "\n" quand tu rencontre <br>.
Ainsi, le parseur va automatiquement "nettoyer" ton fichier HTML de toutes les balises.
(Voir les liens que j'ai donné: ils contiennent des exemples de HTMLParser.)
- implémenter handle_data() pour récupérer uniquement le texte entre les balides.
- implémenter handle_starttag() et ajouter seulement un retour à la ligne "\n" quand tu rencontre <br>.
Ainsi, le parseur va automatiquement "nettoyer" ton fichier HTML de toutes les balises.
(Voir les liens que j'ai donné: ils contiennent des exemples de HTMLParser.)
psykotrop
Messages postés
4
Date d'inscription
lundi 3 mai 2004
Statut
Membre
Dernière intervention
3 mai 2004
1
3 mai 2004 à 17:27
3 mai 2004 à 17:27
merci beaucoup ca marche nikel avec l'ouverture de fichier !
psykotrop
Messages postés
4
Date d'inscription
lundi 3 mai 2004
Statut
Membre
Dernière intervention
3 mai 2004
1
3 mai 2004 à 17:34
3 mai 2004 à 17:34
Petite autre question. Dans le bout de fichier que je récupere j'ai des tags style </span><BR><BR>
Comment les supprimer du fichier ? histoire d'etre propre.
Il serait bon de faire une analyse ligne par ligne et remplacer par rien non ? mais je ne sais pas comment faire.
Sachant qu'un tag "</span><BR><BR>" sur une ligne n'est pas un tag "<br>" sur une autre ca je veux le conserver :) difficile de s'expliquer je donne un exemple :
texte1</span><BR><BR>
<span class="texte">
<br>chanteur
pour obtenir :
texte1
<br>chanteur
en supprimant par ligne : tous les "<span class="texte">" et "</span><BR><BR>"
Comment les supprimer du fichier ? histoire d'etre propre.
Il serait bon de faire une analyse ligne par ligne et remplacer par rien non ? mais je ne sais pas comment faire.
Sachant qu'un tag "</span><BR><BR>" sur une ligne n'est pas un tag "<br>" sur une autre ca je veux le conserver :) difficile de s'expliquer je donne un exemple :
texte1</span><BR><BR>
<span class="texte">
<br>chanteur
pour obtenir :
texte1
<br>chanteur
en supprimant par ligne : tous les "<span class="texte">" et "</span><BR><BR>"