Как перебрать код для всех таблиц в данных HTML? - PullRequest
1 голос
/ 09 ноября 2019

Это HTML-данные веб-страницы, которую я собираю, и, как вы можете видеть, она имеет несколько вкладок. (https://paste.pythondiscord.com/resaxivedo.py)

This is my code:
with open("tabledata.html", "r") as f:
    contents = f.read()
    outfile = open("table_data.csv", "w", newline='')
    writer = csv.writer(outfile)
    tree = BeautifulSoup(contents, "lxml")

    dates = tree.findAll(class_="date")
    list_of_dates = [date.text for date in dates]

    table_tag = tree.select("table")[0]
    tab_data = [[item.text for item in row_data.select("th,td")]
                for row_data in table_tag.select("tr")]
    writer.writerow(list_of_dates[0])
    for data in tab_data:
        print(' '.join(data))
        writer.writerow(data)

Как видите, я выбираю таблицу и дату с помощью [0]. Как сделать цикл, чтобы он мог печатать данные для всех таблиц на странице HTML?

1 Ответ

0 голосов
/ 09 ноября 2019

Примерно так:

for table_tag in tree.select("table") :
    tab_data = [[item.text for item in row_data.select("th,td")]
                for row_data in table_tag.select("tr")]
    writer.writerow(list_of_dates[0])
    for data in tab_data:
        print(' '.join(data))
        writer.writerow(data)
...