2017-03-09 5 views
0

Ich habe eine HTML-Datei mit einer Tabelle darin. Diese Tabelle hat 30 Spalten, aber ich muss nur ein paar lesen. so weitSo legen Sie fest, welche Spalten mit BeautifulSoup gelesen werden sollen

Code:

from bs4 import BeautifulSoup 

soup = BeautifulSoup(open("myfile.htm")) 
table = soup.find("table", attrs={"class":"myTable"}) 

# The first tr contains the field names. 
headings = [th.get_text() for th in table.find("tr").find_all("th")] 

datasets = [] 
for row in table.find_all("tr")[1:]: 
    dataset = zip(headings, (td.get_text() for td in row.find_all("td"))) 
    datasets.append(dataset) 

for dataset in datasets: 
    for field in dataset: 
     print "{0:<16}: {1}".format(field[0], field[1]) 

Wie kann ich festlegen, welche Spalten ich lesen?

+0

Fügen Sie den Grund Ihrer "Stimme für den Abschluss" hinzu. Vielen Dank! – PlayHardGoPro

+0

Sie Frage ist zu vage. Du brauchst mehr Details. Welches Format haben die gesuchten Daten? Gibt es IDs für die TDs, die Sie wollen? Welche möchtest du? Warum greifen Sie alle tds, wenn Sie nur ein Paar wollen. Ihr Code sieht so aus, als ob Sie ihn einfach von irgendwo kopieren würden, aber Sie wissen nicht, wie Sie ihn ändern sollen, und Ihre Frage ist ausreichend vage. – FuriousGeorge

+1

Können wir uns die Datei myfile.htm ansehen? Weißt du, für die Wissenschaft? D – silberbaum

Antwort

Verwandte Themen