python从重庆天气网站上爬取最近7天的最高温和最低温,绘制出图片
时间: 2024-12-23 19:24:37 浏览: 7
在Python中,你可以使用requests库来抓取网页数据,BeautifulSoup或lxml库解析HTML,然后Pandas处理数据,最后通过matplotlib或seaborn库来绘制图表。以下是基本步骤:
1. 导入必要的库:
```python
import requests
from bs4 import BeautifulSoup
import pandas as pd
import matplotlib.pyplot as plt
```
2. 使用requests获取网页内容:
```python
url = "http://weather.com/重庆/历史天气" # 请替换为实际的重庆天气页面链接
response = requests.get(url)
```
3. 解析HTML并提取需要的数据,这取决于实际的网页结构。假设最高温和最低温信息在`<div>`标签内,可以这样做:
```python
soup = BeautifulSoup(response.text, 'html.parser')
temperatures = soup.find_all('div', class_='temperature') # 类名可能是猜测,需根据实际情况调整
# 创建一个空列表存储温度数据
max_temps = []
min_temps = []
for temp in temperatures:
max_temp_text = temp.find('span', class_='max').text
min_temp_text = temp.find('span', class_='min').text
max_temps.append(float(max_temp_text))
min_temps.append(float(min_temp_text))
```
4. 将数据整理成DataFrame:
```python
data = {'Max Temperature': max_temps, 'Min Temperature': min_temps}
df = pd.DataFrame(data)
```
5. 绘制折线图:
```python
plt.figure(figsize=(10, 6))
plt.plot(df['日期'], df['Max Temperature'], label='最高温')
plt.plot(df['日期'], df['Min Temperature'], label='最低温')
plt.xlabel('日期')
plt.ylabel('温度(摄氏度)')
plt.title('重庆过去7天气温走势')
plt.legend()
plt.grid(True)
plt.show()
```
请注意,这个示例假设了每一天有一个对应的气温数据,并且有明显的日期显示。实际操作中,你需要根据网页的具体结构去定位和提取数据。
阅读全文