2011-07-14 3 views
4
<html> 
<table border="1px"> 
<tr> 
<td>yes</td> 
<td>no</td> 
</tr> 
</table> 
</html> 

Y at-il un moyen d'obtenir le contenu de la table (oui, non) en plus de beautifulsoup ?? Un débutant python, n'importe quelle aide ou n'importe quelle direction sera d'une grande aide.Analyser/extraire des données de table en utilisant python

Merci

+1

Oui il y a. Devriez-vous le faire sans analyseur? Probablement pas. – Jacob

+0

okay, comment puis-je l'analyser ?? .. tous les sites de tutoriel que vous pourriez suggérer ?? ... googling it dint donner un résultat fructueux .. –

+0

Si la structure de votre balisage est relativement stable et vous pouvez garantir qu'il est bien formaté , vous pouvez essayer d'utiliser des regex. (Par exemple, une pour l'énumération des lignes d'une table, l'autre pour obtenir des cellules dans une rangée). – Xion

Répondre

8

Vous pouvez utiliser le module HTMLParser qui vient avec la bibliothèque standard de Python.

>>> import HTMLParser 
>>> data = ''' 
... <html> 
... <table border="1px"> 
... <tr> 
... <td>yes</td> 
... <td>no</td> 
... </tr> 
... </table> 
... </html> 
... ''' 
>>> class TableParser(HTMLParser.HTMLParser): 
...  def __init__(self): 
...   HTMLParser.HTMLParser.__init__(self) 
...   self.in_td = False 
...  
...  def handle_starttag(self, tag, attrs): 
...   if tag == 'td': 
...    self.in_td = True 
...  
...  def handle_data(self, data): 
...   if self.in_td: 
...    print data 
...  
...  def handle_endtag(self, tag): 
...   self.in_td = False 
... 
>>> p = TableParser() 
>>> p.feed(data) 
yes 
no 
+0

Merci ... !!!!!!!!!!!! .. –

Questions connexes