用Python,爬取https://nba.hupu.com/stats/players网址中的球员数据,并使用合理的可视化图表将其呈现,并保存excel里
时间: 2024-01-18 19:03:10 浏览: 177
好的,我明白了。这里简单介绍一下爬取数据的步骤:
1. 首先需要使用Python中的requests和BeautifulSoup库来获取网页源代码和解析网页数据。
2. 然后根据网页中的HTML结构,找到需要爬取的数据所在的标签和属性。
3. 将获取到的数据存储到Python中的列表或字典中。
4. 最后,使用Pandas库将数据转换成DataFrame,并使用matplotlib或seaborn库进行可视化。
以下是示例代码:
```python
import requests
from bs4 import BeautifulSoup
import pandas as pd
import matplotlib.pyplot as plt
# 获取网页源代码
url = 'https://nba.hupu.com/stats/players'
res = requests.get(url)
soup = BeautifulSoup(res.text, 'html.parser')
# 找到数据所在的标签和属性
table = soup.find('table', {'class': 'players_table'})
thead = table.find('thead')
tbody = table.find('tbody')
# 将数据存储到列表中
rows = []
for tr in tbody.find_all('tr'):
row = []
for td in tr.find_all('td'):
row.append(td.text)
rows.append(row)
# 将数据转换成DataFrame
df = pd.DataFrame(rows, columns=[th.text for th in thead.find_all('th')])
# 数据清洗
df = df.dropna()
df['得分'] = df['得分'].astype(float)
df['篮板'] = df['篮板'].astype(float)
df['助攻'] = df['助攻'].astype(float)
# 可视化
plt.figure(figsize=(10, 8))
plt.scatter(df['助攻'], df['得分'], s=df['篮板']*5, alpha=0.5)
plt.xlabel('Assists')
plt.ylabel('Points')
plt.title('NBA Players Stats')
plt.savefig('nba_players_stats.png')
# 保存数据到Excel
df.to_excel('nba_players_stats.xlsx', index=False)
```
这段代码会爬取https://nba.hupu.com/stats/players网址中的球员数据,并使用散点图将球员的助攻和得分进行可视化,点的大小表示球员的篮板数。最后,将数据保存到Excel中,并保存可视化图表为png图片。
阅读全文