NBA球员数据的爬取
发布时间:2024-07-08 21:24:24点击量:
要爬取虎扑NBA球员常规赛数据,可以使用 Python 爬虫库 requests 和数据处理库 pandas。
首先,我们需要确定要爬取的页面。在虎扑NBA的球员排行榜页面中,有一个“常规赛”选项卡,我们可以点击该选项卡,进入到球员常规赛数据页面。页面的 URL 为 https://nba.hupu.com/stats/players/pts。
然后,我们使用 requests 库发送 GET 请求,获取页面的 HTML 内容。
```python
import requests
url='https://nba.hupu.com/stats/players/pts'
response=requests.get(url)
html=response.text
```
接下来,我们使用 BeautifulSoup 库解析 HTML 内容,找到包含球员数据的表格元素。
```python
from bs4 import BeautifulSoup
soup=BeautifulSoup(html, 'html.parser')
table=soup.find('table', {'class': 'players_table'})
```
然后,我们可以使用 pandas 库将表格数据转换为 DataFrame 对象,并进行数据清洗和处理。
```python
import pandas as pd
df=pd.read_html(str(table))[0] # 将表格转换为 DataFrame 对象
df.drop('Unnamed: 0', axis=1, inplace=True) # 删除无用的列
df.columns=['排名', '球员', '球队', '得分', '篮板', '助攻', '抢断', '盖帽', '命中率', '三分命中率', '罚球命中率'] # 重命名列
df['球员']=df['球员'].apply(lambda x: x.split(',')[0]) # 保留球员姓名的姓氏部分
```
最后,我们可以将 DataFrame 对象保存为 CSV 文件,方便后续的数据分析和可视化。
```python
df.to_csv('nba_players.csv', index=False)
```
完整的代码如下:
```python
import requests
from bs4 import BeautifulSoup
import pandas as pd
url='https://nba.hupu.com/stats/players/pts'
response=requests.get(url)
html=response.text
soup=BeautifulSoup(html, 'html.parser')
table=soup.find('table', {'class': 'players_table'})
df=pd.read_html(str(table))[0]
df.drop('Unnamed: 0', axis=1, inplace=True)
df.columns=['排名', '球员', '球队', '得分', '篮板', '助攻', '抢断', '盖帽', '命中率', '三分命中率', '罚球命中率']
df['球员']=df['球员'].apply(lambda x: x.split(',')[0])
df.to_csv('nba_players.csv', index=False)
```