Parsing von HTML-Dateien in Python

Ich habe eine sehr lange HTML-Datei, die genau so aussieht -HTML-Datei . Ich möchte in der Lage sein, die Datei so zu analysieren, dass ich die Informationen im Formular auf einem Tupel erhalte.

Beispiel:

<tr>
      <td>Cech</td>
      <td>Chelsea</td>
      <td>30</td>
      <td>£6.4</td>
</tr>

Die obigen Informationen sehen dann so aus("Cech", "Chelsea", 30, 6.4). Wenn Sie jedoch genau hinschauenVerknüpfung Ich habe gepostet, das HTML-Beispiel, das ich gepostet habe, ist unter a<h2>Goalkeepers</h2> Etikett. Ich brauche diesen Tag auch. Im Grunde wird das Ergebnis-Tupel so aussehen("Cech", "Chelsea", 30, 6.4, Goalkeepers) . Weiter unten in der Datei kommen eine Reihe von Spielern unter<h2> Tags von Mittelfeldspielern, Verteidigern und Stürmern.

Ich habe versucht, die Bibliotheken beautifulsoup und ntlk zu verwenden und bin verloren gegangen. So, jetzt habe ich den folgenden Code:

import nltk
from urllib import urlopen

url = "http://fantasy.premierleague.com/player-list/"
html = urlopen(url).read()
raw = nltk.clean_html(html)
print raw

Das entfernt einfach die HTML-Datei von allen Tags und gibt so etwas:

          Cech
          Chelsea
          30
          £6.4

Obwohl ich ein schlechtes Stück Code schreiben kann, das jede Zeile liest und es einem Tupel zuweisen kann. Ich kann keine Lösung finden, die auch die Position des Spielers (die in der Tabelle enthaltene Zeichenfolge) berücksichtigt<h2> Stichworte). Jede Lösung / Vorschläge wird sehr geschätzt.

Der Grund, warum ich dazu neige, Tupel zu verwenden, damit ich das Entpacken verwenden und planen kann, eine MySQl-Tabelle mit den entpackten Werten zu füllen.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage