Я пытаюсь использовать BeautifulSoup для создания скребка, который будет снимать баллы с отметок www.basketball-reference.com. Пример страницы с оценками ящиков будет this . Таблицы оценок ящиков, которые я хочу, находятся под тегом таблицы, имеют идентификатор, который содержит слово «basi c» (это отличает его от таблиц с расширенной статистикой). Я подумал, что функция лучше всего подойдет для выявления этого различия. Html выглядит следующим образом.
Мой код:
r = requests.get(https://www.basketball-reference.com/boxscores/202003110ATL.html).content
soup = BeautifulSoup(r, 'lxml')
def get_boxscore_basic_table(tag):
return ('basic' in tag.attrs['id']) and ('sortable' in tag.attrs['class'])
tables = soup.find_all(get_boxscore_basic_table)
Это выдает: "KeyError 'id'", и я запутался, как это исправить , Я проверил ключи, взяв только первый экземпляр, используя .find ():
table = soup.find('table')
print('table.attrs')
И ключ 'id' там. Почему он не может найти мой указанный c запрос при поиске по всему html и как я могу это исправить?