BS4 не дает таблицы - PullRequest
0 голосов
/ 03 мая 2020
URL = 'https://www.basketball-reference.com/leagues/NBA_2019.html'
content = requests.get(URL)
soup = BeautifulSoup(content.text, 'html.parser')
table = soup.find_all('table', {'class' : 'sortable stats_table now_sortable'})
rows = table.find_all('td')
for i in rows:
    print(i.get_text())

Я хочу получить содержимое таблицы с статистикой по каждой игре от этого сайта , но я получил ошибку

>>>AttributeError: 'NoneType' object has no attribute 'find_all'

Ответы [ 2 ]

0 голосов
/ 03 мая 2020

На самом деле вы можете использовать pandas.read_html(), который будет читать все таблицы в хорошем формате. он вернет таблицы в виде списка. так что вы можете получить к нему доступ как DataFrame с индексом, таким как print(df[0]), например

import pandas as pd

df = pd.read_html("https://www.basketball-reference.com/leagues/NBA_2019.html")

print(df)

enter image description here

0 голосов
/ 03 мая 2020

Таблица, которую вы хотите, динамически загружается, то есть она не загружается в html при первом обращении к странице. Итак, таблица, которую вы ищете, еще не существует.

Чтобы очистить сайты, использующие javascript, вы можете изучить использование selenium webdriver и Phantom JS, лучше описанные в этом посте -> { ссылка }

...