Comment analyser un fichier HTML avec la table à l'aide de Python
J'ai un fichier html avec une table ( c'est un grand un seul, de sorte que seules exemple de code est donné ). Je veux récupérer les valeurs dans les tableaux. J'ai essayé le HTMLParser bibliothèque à partir de python.
J'ai commencé à coder comme ci-dessous. Ensuite, j'ai trouvé que l'attribut "class" est le même que le système défini de mot-clé. Donc sa me donne erreur.
class MyHTMLParser(HTMLParser):
def handle_starttag(self, tag, attrs):
if tag == 'tr':
for class in attrs:
if class == 'Table_row'
p = MyHTMLParser()
p.feed(ht)
Code HTML pour table
<table class="Table_rows" cellspacing="0" rules="all" border="1" id="MyDataGrid" style="width:700px;border-collapse:collapse;">
<tr class="Table_Heading">
<td>STATION CODE</td><td>STATION NAME</td><td>SCHEDULED ARRIVAL</td><td>SCHEDULED DEPARTURE</td><td>ACTUAL/ EXPECTED ARRIVAL</td><td>ACTUAL/ EXPECTED DEPARTURE</td>
</tr><tr class="Table_row">
<td>TVC </td><td style="width:160px;">ORIGON</td><td>Starting Station </td><td>05:00, 07 May 2011</td><td>Starting Station</td><td>05:00, 07 May 2011</td>
</tr><tr class="alternat_table_row">
<td>TVP </td><td>NEY YORK</td><td>05:04, 07 May 2011</td><td>05:05, 07 May 2011</td><td>05:04, 07 May 2011</td><td>05:05, 07 May 2011</td>
</tr>
</table>
Mise à JOUR
Comment pourrais-je obtenir des données entre les balises?
- J'ai écrit un petit et simple de la table HTML parser ne nécessitant pas de tout module externe: github.com/schmijos/html-table-parser-python3/blob/master/...
Vous devez vous connecter pour publier un commentaire.
Notez que la documentation de la
handle_starttag
méthode unis:Donc, vous êtes probablement à la recherche de quelque chose comme:
Imprime:
P. S. je recommande également BeautifulSoup pour l'analyse de code HTML avec le langage Python.
STATION CODE
STATION NAME
ORIGON
...?td
tags et de les traitertr
le tagclass=Table_Heading
ouclass=Table_row
ouclass=alternate_table_row
seulement. Puis-je utiliser et cluause pour le faire fonctionner?tr
avec le bonclass
, tourner sur un drapeau. Puis danshandle_data
vérifier ce drapeau et alors seulement prendre les données.Vous pouvez le faire comme ceci avec BeautifulSoup.
Je vous recommande fortement de l'aide de l'BeautifulSoup de la bibliothèque. Il gère même cassé HTML avec facilité.
http://www.crummy.com/software/BeautifulSoup/