[Python]Récup une partie du code d'un page

Fermé
n4pst3r Messages postés 14 Date d'inscription vendredi 17 octobre 2008 Statut Membre Dernière intervention 28 janvier 2009 - 27 nov. 2008 à 18:24
n4pst3r Messages postés 14 Date d'inscription vendredi 17 octobre 2008 Statut Membre Dernière intervention 28 janvier 2009 - 28 nov. 2008 à 16:20
Bonjour,

suite a mon sujet http://www.commentcamarche.net/forum/affich 9615665 python script pour telecharger une page
je souhaiterais maintenant récuperer certaine infos contenu dans les pages web que j'ai télécharger, par exemple, les adresses mails ou certains textes contenue dans des balises html...

je pensais utiliser des conditions mais je vois pas trop comment délimiter le texte a récuperer ....

merci d'avance !
A voir également:

4 réponses

kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
27 nov. 2008 à 22:02
par exemple, les adresses mails ou certains textes contenue dans des balises html...

Tu vas avoir besoin des expressions régulières :-)

C'est une adresse pour le Php mais les expressions régulières restent les mêmes d'un langage à l'autre
https://www.commentcamarche.net/contents/803-php-expressions-regulieres

Appliqué au python: http://wikipython.flibuste.net/ExpressionsReguliere
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
28 nov. 2008 à 09:10
Oui, expressions régulière, ou manipulation du html avec certaines librairies spécialisées.

Voilà 4 moyens d'extraire des infos d'une page web: https://sebsauvage.net/python/snyppets/index.html#getlinks1
- expressions régulières
- module HTMLParser
- BeautifulSoup
- recherche de chaine standard (find, rfind, split...)
0
n4pst3r Messages postés 14 Date d'inscription vendredi 17 octobre 2008 Statut Membre Dernière intervention 28 janvier 2009 1
28 nov. 2008 à 15:59
Merci pour vos liens ! je vois mieux comment faire !

mais le truc c'est que la zone qui délimite entre où et où prendre le texte contient des espaces et des saut de lignes...

voila le code de ma page page1.html

<tr bgcolor="#f5f5f5">
																
																<td class="txt8" width="50%">Nom</td>
																<td class="1" align="left" width="50%">Dupont
																	
																	
																</td>
				
															
															<tr bgcolor="#ffffff">
																
																<td class="txt8" width="50%">Prénom</td>
																<td class="1" align="left" width="50%">Jacque
																	
																	
																</td>
						
															
															<tr bgcolor="#f5f5f5">
																
																<td class="txt8" width="50%">Email</td>
																<td class="1" align="left" width="50%">aaaaaa@aaaa.com
																	
																	
																</td>

Et voila mon script.
import re

html = open('page1.html','rb').read()
nom = re.findall('XXXXXXXXXXXXXXXX (.*?)XXXXXXXXXX',html)
    print nom


que mettre a la place des X pour sélectionnait par exemple dupont ?
0
n4pst3r Messages postés 14 Date d'inscription vendredi 17 octobre 2008 Statut Membre Dernière intervention 28 janvier 2009 1
28 nov. 2008 à 16:20
hihi ! j'ai trouvé !!!

les codes déposé un peu partout sur le forum m'aide beaucoup sebsauvage !!! MERCI !

# -*- coding: iso-8859-1 -*-

data = open('page1.html','rb').read()

beginTag = """<td class="txt8" width="50%">Nom</td>
																<td class="1" align="left" width="50%">"""
endTag   = """
																	
																	
																</td>"""

startPos = data.find(beginTag)

while startPos > -1:
    endPos = data.find(endTag,startPos+1)
    if endTag == -1:
      break
    else:
      print "Nom:",data[startPos+len(beginTag):endPos]
      startPos = data.find(beginTag,endPos+1)


Bon et si maintenant je veux stocké cette donné dans un CSV ? avec en face une autre donné genre le prénom ?
0