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

n4pst3r Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   -  
n4pst3r Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   -
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 8732 Date d'inscription   Statut Modérateur Dernière intervention   1 526
 
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   Statut Modérateur Dernière intervention   15 662
 
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   Statut Membre Dernière intervention   1
 
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   Statut Membre Dernière intervention   1
 
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