2016-11-02 5 views
0

Ich habe versucht, Informationen von einer Webseite zu analysieren. Im Grunde möchte ich einige Informationen aus der Tabelle innerhalb des HTML-Codes ziehen, damit ich sie in Trend setzen kann. Der Teil, an dem ich festhalte, ist das Parsen des HTML in der Tabelle.Analysieren einer Tabelle in HTML mit Python

Die Webseite ist http://weather.unbc.ca/wx/data-table.html

Ich habe versucht zu verwenden:

import urllib2 
from bs4 import BeautifulSoup 


contenturl = "http://weather.unbc.ca/wx/data-table.html" 


soup = BeautifulSoup(urllib2.urlopen(contenturl).read()) 

table = soup.find('tr', attrs={'class': 'content'}) 

rows = table.findAll('tr') 
for tr in rows: 
cols = tr.findAll('td') 
if 'cell_c' in cols[0]['class']: 
    # currency row 
     Date_time, Record, Tair, Tdew, RH, pstn, pmsl, wspd_avg, wspd_vec,  wdir, wstd, wgust, precip, solarq, solarq_un, kdown, kdown_dif, Sun, Ldown = [c.text for c in cols] 
     print Date_time, Record, Tair, Tdew, RH, pstn, pmsl, wspd_avg, wspd_vec, wdir, wstd, wgust, precip, solarq, solarq_un, kdown, kdown_dif, Sun, Ldown 

Ich scheine den Fehler zu erhalten: Traceback (jüngste Aufforderung zuletzt). Datei“\ data. py“, Zeile 14, in rows = table.findAll ('tr') Attribute: 'NoneType' Objekt hat kein Attribut

Pardon meine Unwissenheit auf schöne Suppe 'findAll'. Ich bin völlig offen für andere Ansätze. Mein Ziel ist es, die letzte Zeile in der Tabelle in Variablen zu setzen, damit ich Trend machen kann.

Antwort

0

NoneType bedeutet im Wesentlichen soup.find zurückgegeben keine.

Ich bin kein Experte in BeautifulSoup oder urllib aber meine wilde Vermutung ist, dass es keine tr mit Klasse Inhalt finden konnten.

Ich hoffe, es hilft.

+0

Ich denke, ich brauche mehr Hilfe mit beautifulsoup. Ich kann die "Suppe" drucken und es zeigt eine Menge tr. Ich werde versuchen, mehr darüber zu recherchieren, wie ich das besser machen und in einen Tisch legen kann - da muss ich etwas falsch machen. – huntthedead

+0

Versuchen Sie, den HTML-Code der Seite zu überprüfen, von der Sie Daten abrufen möchten. vielleicht hast du da etwas verpasst. –