Python爬取天气数据可以使用第三方库如requests和beautifulsoup进行网络请求和解析数据。可以先使用requests请求天气网站的数据,然后使用beautifulsoup进行解析。解析出的数据可以存入csv中,并对数据进行可视化分析
时间: 2024-06-08 12:08:21 浏览: 141
是的,爬取天气数据可以使用requests和beautifulsoup这两个库,步骤如下:
1. 使用requests库向天气网站发送HTTP请求,获取网页源代码。
2. 使用beautifulsoup库对源代码进行解析,提取需要的数据。
3. 将数据存入csv文件中,可以使用Python内置的csv库。
4. 对数据进行可视化分析,可以使用matplotlib或者seaborn等数据可视化库。
以下是一个简单的爬取天气数据并进行可视化分析的示例代码:
```python
import requests
from bs4 import BeautifulSoup
import csv
import matplotlib.pyplot as plt
# 请求天气网站的数据
url = "http://www.weather.com.cn/weather/101010100.shtml"
response = requests.get(url)
html = response.content.decode("utf-8")
# 使用beautifulsoup解析数据
soup = BeautifulSoup(html, "html.parser")
weather_list = soup.find("ul", class_="t clearfix").find_all("li")
data = []
for weather in weather_list:
date = weather.find("h1").text
desc = weather.find("p", class_="wea").text
temp = weather.find("p", class_="tem").find_all("span")
high_temp = temp[0].text
low_temp = temp[1].text
data.append([date, desc, high_temp, low_temp])
# 将数据存入csv文件中
with open("weather.csv", "w", newline="") as csvfile:
writer = csv.writer(csvfile)
writer.writerow(["日期", "天气描述", "最高温度", "最低温度"])
writer.writerows(data)
# 对数据进行可视化分析
dates = [i[0] for i in data]
high_temps = [int(i[2].replace("℃", "")) for i in data]
low_temps = [int(i[3].replace("℃", "")) for i in data]
plt.plot(dates, high_temps, label="最高温度")
plt.plot(dates, low_temps, label="最低温度")
plt.xlabel("日期")
plt.ylabel("温度(℃)")
plt.legend()
plt.show()
```
运行以上代码后,就可以在当前目录下生成一个weather.csv文件,并且会显示出天气数据的可视化图表。
阅读全文