1 回答

TA貢獻(xiàn)1843條經(jīng)驗(yàn) 獲得超7個贊
基本上頁面是通過加載的JavaScript
,所以bs4
或requests
模塊將無法JavaScript
動態(tài)渲染。
你應(yīng)該使用selenium
或requests_html
模塊來渲染JS
,但我注意到網(wǎng)站正在使用API
,它可以用來獲取數(shù)據(jù),所以我調(diào)用了它并提取了數(shù)據(jù)。
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")
輸出:在線查看
- 1 回答
- 0 關(guān)注
- 219 瀏覽
添加回答
舉報