Вы должны дождаться загрузки элемента table
на странице. Я добавил WebDriverWait
в скрипт, так что этот работает для меня:
import pandas as pd
from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Chrome()
ids = [203500, 1628389, 1629061, 1629152, 200746, 1628959, 1628960, 1628386, 1628443, 202329, 1626147]
player_stats = []
for player_id in ids:
driver.get('https://stats.nba.com/player/{}/boxscores-traditional/'.format(player_id))
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CLASS_NAME, 'nba-stat-table')))
soup = BeautifulSoup(driver.page_source, 'html.parser')
table = soup.find('table')
dfs = pd.read_html(str(table))
player_stats.append(dfs[0])
driver.quit()