爬取虎扑NBA球员常规赛数据
时间: 2023-10-02 15:13:51 浏览: 162
python爬取NBA球员并进行数据可视化
要爬取虎扑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)
```
阅读全文