Источник: https://en.wikipedia.org/wiki/COVID-19_pandemic_in_the_United_States. Я хочу использовать таблицу под названием «COVID-19 pandemi c в США по штатам и территориям», которая является третьей диаграммой на странице. Вот мой код на данный момент
from bs4 import BeautifulSoup
import pandas as pd
with open("COVID-19 pandemic in the United States - Wikipedia.htm", "r", encoding="utf-8") as fd:
soup=BeautifulSoup(fd)
print(soup.prettify())
all_tables = soup.find_all("table")
print("The total number of tables are {} ".format(len(all_tables)))
data_table = soup.find("div", {"class": 'mw-stack stack-container stack-clear-right mobile-float-reset'})
print(type(data_table))
sources = data_table.tbody.findAll('tr', recursive=False)[0]
sources_list = [td for td in sources.findAll('td')]
print(len(sources_list))
data = data_table.tbody.findAll('tr', recursive=False)[1].findAll('td', recursive=False)
data_tables = []
for td in data:
data_tables.append(td.findAll('table'))
header1 = [th.getText().strip() for th in data_tables[0][0].findAll('thead')[0].findAll('th')]
header1
Эта последняя строка с header1 я выдаю мне ошибку «индекс списка вне допустимого диапазона» . Предполагается, что он напечатает «Штат или территория США ...»
Я ничего не знаю о html, и все это меня сбивает с толку. Кроме того, soup.find может ссылаться не на ту часть веб-страницы.