利用Python爬取虎扑球员信息至execl及可视化
时间: 2024-03-17 08:46:17 浏览: 154
好的,我可以为您提供以下步骤:
1. 安装必要的库
您需要安装以下库:
- requests:用于获取HTML页面
- BeautifulSoup:用于解析HTML页面
- pandas:用于将数据保存至Excel
- matplotlib:用于数据可视化
可以使用以下命令进行安装:
```
pip install requests
pip install beautifulsoup4
pip install pandas
pip install matplotlib
```
2. 获取页面数据
我们可以使用requests库获取虎扑足球球员页面的HTML源代码。代码如下:
```python
import requests
from bs4 import BeautifulSoup
url = 'https://nba.hupu.com/players/'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
```
3. 解析数据
我们可以使用BeautifulSoup库来解析HTML页面。通过分析虎扑球员页面的HTML源代码,我们可以发现,球员信息保存在一个表格(table)中。我们可以使用以下代码来获取表格数据,并将其转化为一个列表列表。
```python
table = soup.find_all('table', {'class': 'players_table'})[0]
rows = table.find_all('tr')[1:]
data = []
for row in rows:
cols = row.find_all('td')
cols = [col.text.strip() for col in cols]
data.append(cols)
```
4. 保存数据至Excel
我们可以使用pandas库来将数据保存至Excel。以下是保存数据的代码:
```python
import pandas as pd
df = pd.DataFrame(data, columns=['球员', '球队', '位置', '身高', '体重', '生日'])
df.to_excel('players.xlsx', index=False)
```
5. 数据可视化
我们可以使用matplotlib库来对数据进行可视化。以下是代码示例:
```python
import matplotlib.pyplot as plt
df['身高'] = df['身高'].apply(lambda x: int(x.replace('cm', '')))
df['体重'] = df['体重'].apply(lambda x: float(x.replace('kg', '')))
df['生日'] = pd.to_datetime(df['生日'])
df['年龄'] = pd.Timestamp.now().year - pd.DatetimeIndex(df['生日']).year
fig, ax = plt.subplots()
ax.scatter(df['身高'], df['体重'], c=df['年龄'], cmap='cool')
ax.set_xlabel('身高(cm)')
ax.set_ylabel('体重(kg)')
ax.set_title('球员身高体重分布图')
plt.show()
```
这样,我们就可以将虎扑足球球员信息爬取并保存至Excel,同时进行数据可视化啦!
阅读全文