如何修改代码以从此网页上的第二个表中抓取数据



我正试图从以下网站上的表中抓取数据:https://www.eliteprospects.com/league/nhl/stats/2021-2022

这是我发现的代码,可以成功地从第一个表中为溜冰者的统计数据刮掉数据:

import requests
import pandas as pd
from bs4 import BeautifulSoup
dfs = []
for page in range(1,10):
url = f"https://www.eliteprospects.com/league/nhl/stats/2021-2022?sort=tp&page={page}"
print(f"Loading {url=}")
soup = BeautifulSoup(requests.get(url).content, "html.parser")
df = (
pd.read_html(str(soup.select_one(".player-stats")))[0]
.dropna(how="all")
.reset_index(drop=True)
)
dfs.append(df)
df_final = pd.concat(dfs).reset_index(drop=True)
print(df_final)
df_final.to_csv("data.csv", index=False)

但是我很难从底部的表格中删除守门员的数据。任何想法如何修改代码,以获得从底部表的统计数据?我试着把第13行改成"(".goalie-stats")"但是当我试图运行代码时,它返回了一个错误。

谢谢! !

我找到了一种获取数据的方法,但它并不完美。当我得到它时,它会生成很多未命名的列。尽管如此,它还是得到了数据,所以我希望它对你有帮助。

import requests
import pandas as pd
from bs4 import BeautifulSoup
dfs = []
for page in range(1,3):
url = f"https://www.eliteprospects.com/league/nhl/stats/2021-2022?sort-goalie-stats=svp&page-goalie={page}#goalies"
print(f"Loading {url=}")
soup = BeautifulSoup(requests.get(url).content, "html.parser")
df = (
pd.read_html(str(soup.select_one(".goalie-stats")).replace('%', ''))[0]
.dropna(how="all")
.reset_index(drop=True)
)
dfs.append(df)
df_final = pd.concat(dfs).reset_index(drop=True)
print(df_final)
df_final.to_csv("data.csv", index=False)

最新更新