2016-09-12 3 views
0

Ich versuche, Daten von einer Website mit schönen Suppe zu extrahieren, um die HTML zu analysieren. Ich versuche zur Zeit die Tabellendaten aus der folgenden Webseite zu erhalten:Schöne Suppe fehlt einige HTML-Tags Tabelle

link to webpage

ich die Daten aus der Tabelle erhalten möchten. Zuerst habe ich die Seite als HTML-Datei auf meinem Computer speichern (dieser Teil funktioniert gut, ich überprüft, dass ich alle Informationen habe), aber wenn ich versuche, mit dem folgenden Code zu analysieren:

soup = BeautifulSoup(fh, 'html.parser') 
table = soup.find_all('table') 
cols = table[0].find_all('tr') 
cells = cols[1].find_all('td')` 

ich nicht bekommen irgendwelche Ergebnisse (speziell stürzt es ab und sagt, dass es kein Element bei Index 1 gibt). Irgendeine Idee von wo es herkommen könnte?

Dank

+0

Funktioniert für mich wie sind Sie sicher, dass Sie die richtige HTML-Datei analysieren? – alecxe

+0

Ich sehe ein Leerzeichen zwischen 'table' und' [0] 'in der 3. Zeile. Auf der anderen Seite hatte ich ein ähnliches Problem früher und ich fand heraus, dass, wenn das HTML viel aufgebohrt ist, Beautiful Soup nicht damit umgehen kann. Ich habe verschiedene 'HTML-Parser' ausprobiert, konnte aber keine Lösung finden. – Leustad

+0

Ich bin mir ziemlich sicher, dass ich die korrekte HTML-Datei analysiere, zumindest wenn ich sie im Editor öffne, sieht es korrekt aus. Über den Platz war es ein Tippfehler, aber nicht in meinem Code vorhanden. – aeboq

Antwort

0

Ok, es war tatsächlich ein Problem in der HTML-Datei, in der ersten Zeile wurden die HTML-Tags mit th geöffnet, aber mit td geschlossen. Ich weiß nicht viel über HTML, aber das Ersetzen der th von td löste das Problem.

<tr class="listeEtablenTete"> 
<th title="Rubrique IC">Rubri. IC</td> 
<th title="Alin&eacute;a">Ali.&nbsp;</td> 
<th title="Date d'autorisation">Date auto.</td> 
<th >Etat d'activit&eacute;</td> 
<th title="R&eacute;gime">R&eacute;g.</td> 
<th >Activit&eacute;</td> 
<th >Volume</td> 
<th >Unit&eacute;</td>` 

Vielen Dank!