В основном страница загружается через JavaScript
, поэтому bs4
или requests
модули не смогут визуализировать JavaScript
на лету.
Вы должны использовать selenium
или requests_html
модулей для рендеринга JS
, но я заметил, что веб-сайт использует API
, который можно использовать для извлечения данных, поэтому я вызвал его и извлек данные.
Check My предыдущий Ответ , который объясняет вам, как получить API
.
import requests
import pandas as pd
params = {
"Counter": "1000",
"DateFrom": "",
"DateTo": "",
"Direction": "DESC",
"LeagueID": "00",
"PlayerOrTeam": "P",
"Season": "2018-19",
"SeasonType": "Regular Season",
"Sorter": "DATE"
}
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:75.0) Gecko/20100101 Firefox/75.0',
"x-nba-stats-origin": "stats",
"x-nba-stats-token": "true",
"Referer": "https://stats.nba.com/players/boxscores/?Season=2018-19&SeasonType=Regular%20Season"
}
def main(url):
r = requests.get(url, params=params, headers=headers).json()
goal = []
for item in r['resultSets']:
df = pd.DataFrame(item['rowSet'], columns=item['headers'])
goal.append(df)
new = pd.concat(goal)
print(new)
new.to_csv("data.csv", index=False)
main("https://stats.nba.com/stats/leaguegamelog")
Вывод: Просмотр онлайн