簡體   English   中英

如何用python從NBA網站上抓取統計數據

[英]How to scrape stats from NBA website with python

我正在嘗試從 NBA 網站上抓取高級統計數據,更具體地說是從這個鏈接https://stats.nba.com/leaders/?StatCategory=FG3M&PerMode=Totals 但是,我似乎收到錯誤“NoneType”對象沒有屬性“tbody”。 如果有人幫助我,我將不勝感激。 謝謝。

我的代碼

import requests
from bs4 import BeautifulSoup
import pandas as pd

URL = 'https://stats.nba.com/leaders/?StatCategory=FG3M&PerMode=Totals'
response = requests.get(URL)
soup = BeautifulSoup(response.content, 'html.parser')

columns = ['#', 'PLAYER', 'GP', 'MIN', 'PTS', 'FGM', 'FGA', 'FG%',  '3PM', '3PA',
        '3P%', 'FTM', 'FTA', 'FT%', 'OREB', 'DREB', 'REB', 'AST', 'STL', 'BLK',
        'TOV', 'PF', 'EFF', 'AST/TOV', 'STL/TOV']

df = pd.DataFrame(columns=columns)
table = soup.find('table').tbody

trs = table.find_all('tr')
for tr in trs:
    tds = tr.find_all('td')
    row = [td.text.replace('\n', '') for td in tds]
    df = df.append(pd.Series(row, index=columns), ignore_index=True)

df.to_csv('Stats NBA.csv', index=False)
import requests
import pandas as pd

r = requests.get(
    'https://stats.nba.com/stats/leagueLeaders?LeagueID=00&PerMode=Totals&Scope=S&Season=2019-20&SeasonType=Regular+Season&StatCategory=FG3M').json()

df = pd.DataFrame(r['resultSet']['rowSet'], columns=r['resultSet']['headers'])
df.to_csv('output.csv', index=False)
print('done')

在線查看輸出: 點擊這里

API通常很酷。

import requests

import pandas as pd

r = requests.get(
    'https://stats.nba.com/stats/leagueLeaders?LeagueID=00&PerMode=Totals&Scope=S&Season=2020-21&SeasonType=Regular+Season&StatCategory=FG3M').json()

df = pd.DataFrame(r['resultSet']['rowSet'], 

columns=r['resultSet']['headers'])

df.to_csv('NBA stats.csv', index=False)

print(df)

輸出:

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM