亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Soup.find_all 返回一個空列表

Soup.find_all 返回一個空列表

動漫人物 2024-01-03 17:35:42
requests我正在嘗試使用和來抓取 NBA 統計數據的球員統計表BeautifulSoup,但我得到的響應與我使用“檢查元素”看到的不同包含div該表的類屬性為:class="nba-stat-table__overflow。但是,每當我運行以下代碼時,我都會得到一個空列表:table = soup.find_all('div',attrs={'class="nba-stat-table__overflow'})這是我的完整代碼:import osimport pandas as pdimport numpy as npfrom bs4 import BeautifulSoupimport requestsurl = 'https://stats.nba.com/players/boxscores/?Season=2018-19&SeasonType=Regular%20Season'response = requests.get(url)soup = BeautifulSoup(response.content,'html.parser')table = soup.find_all('div',attrs={'class="nba-stat-table__overflow'})
查看完整描述

1 回答

?
藍山帝景

TA貢獻1843條經驗 獲得超7個贊

基本上頁面是通過加載的JavaScript,所以bs4requests模塊將無法JavaScript動態渲染。

你應該使用seleniumrequests_html模塊來渲染JS,但我注意到網站正在使用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")

輸出:在線查看

https://img1.sycdn.imooc.com/65952a93000196a125470589.jpg

查看完整回答
反對 回復 2024-01-03
  • 1 回答
  • 0 關注
  • 224 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號