爬取https://nba.hupu.com/stats/players网址中的球员数据,通过openpyxl库存储到excel文件中,并使用柱形的可视化图表将其呈现
时间: 2023-12-11 15:05:24 浏览: 88
好的,我可以帮你实现这个功能。首先,你需要安装 `requests` 和 `beautifulsoup4` 库来进行网页爬取,同时也需要安装 `openpyxl` 库来进行 Excel 文件的读写操作。你可以通过以下命令来安装这些库:
```
pip install requests beautifulsoup4 openpyxl
```
接下来,你可以使用以下代码来实现将球员数据存储到 Excel 文件中:
```python
import requests
from bs4 import BeautifulSoup
from openpyxl import Workbook
# 发送 GET 请求并获取网页内容
url = 'https://nba.hupu.com/stats/players'
response = requests.get(url)
html = response.content
# 使用 BeautifulSoup 解析网页内容
soup = BeautifulSoup(html, 'html.parser')
table = soup.find('table', class_='players_table')
# 创建 Excel 文件并写入数据
workbook = Workbook()
worksheet = workbook.active
worksheet.append(['排名', '球员', '球队', '得分', '篮板', '助攻'])
for tr in table.tbody.find_all('tr'):
tds = tr.find_all('td')
rank = tds[0].text.strip()
player = tds[1].text.strip()
team = tds[2].text.strip()
score = tds[3].text.strip()
rebound = tds[4].text.strip()
assist = tds[5].text.strip()
worksheet.append([rank, player, team, score, rebound, assist])
workbook.save('players.xlsx')
```
这段代码会将网页中的球员数据存储到 `players.xlsx` 文件中。
接下来,你可以使用以下代码来实现柱形可视化图表的呈现:
```python
import matplotlib.pyplot as plt
from openpyxl import load_workbook
# 读取 Excel 文件中的数据
workbook = load_workbook(filename='players.xlsx')
worksheet = workbook.active
data = list(worksheet.values)[1:]
# 将数据转换为字典并按得分排序
data_dict = {}
for row in data:
data_dict[row[1]] = float(row[3])
sorted_data = sorted(data_dict.items(), key=lambda x: x[1], reverse=True)
# 取出前十名球员并生成柱形图
top10 = sorted_data[:10]
names = [x[0] for x in top10]
scores = [x[1] for x in top10]
plt.bar(names, scores)
plt.xticks(rotation=45)
plt.xlabel('球员')
plt.ylabel('得分')
plt.title('NBA 球员得分排名前十')
plt.show()
```
这段代码会根据 Excel 文件中的数据生成一个柱形可视化图表,展示 NBA 球员得分排名前十的信息。
希望这些代码能帮到你,如果有任何问题,请随时向我提问。
阅读全文