引言随着互联网的普及,越来越多的数据以数字化的形式呈现。对于历史年度天气数据,这些数据对于气候研究、城市规划等领域具有重要意义。Python作为一种功能强大的编程语言,在数据采集方面有着广泛的应用。本...
随着互联网的普及,越来越多的数据以数字化的形式呈现。对于历史年度天气数据,这些数据对于气候研究、城市规划等领域具有重要意义。Python作为一种功能强大的编程语言,在数据采集方面有着广泛的应用。本文将介绍如何使用Python轻松掌握历史年度天气数据的采集技巧。
在进行天气数据采集之前,我们需要准备以下环境:
pip install requests beautifulsoup4选择一个合适的天气数据来源是成功采集数据的关键。以下是一些常用的数据来源:
在采集数据之前,我们需要了解数据来源的网站结构。以下以国家气象局为例,介绍如何分析数据结构。
以下是一个简单的Python爬虫示例,用于采集国家气象局的历史天气数据。
import requests
from bs4 import BeautifulSoup
# 设置请求头
headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
}
# 定义数据采集函数
def get_weather_data(url): response = requests.get(url, headers=headers) soup = BeautifulSoup(response.text, 'html.parser') weather_data = soup.find_all('tr') for data in weather_data: # 提取数据 date = data.find('td', class_='date').text max_temp = data.find('td', class_='max').text min_temp = data.find('td', class_='min').text humidity = data.find('td', class_='humidity').text wind = data.find('td', class_='wind').text # 打印数据 print(f'日期: {date}, 最高温度: {max_temp}, 最低温度: {min_temp}, 湿度: {humidity}, 风力: {wind}')
# 设置采集的起始年份和结束年份
start_year = 2000
end_year = 2020
# 设置采集的起始日期和结束日期
start_date = '01-01'
end_date = '12-31'
# 设置采集的站点编号
station_id = '510100'
# 设置采集的起始URL
url = f'http://data.cma.cn/data/cdyw/qxzy/{start_year}/{end_year}/{station_id}/index.html'
# 循环采集数据
while start_year <= end_year: # 设置当前年份的URL current_url = f'http://data.cma.cn/data/cdyw/qxzy/{start_year}/{end_year}/{station_id}/index.html' get_weather_data(current_url) start_year += 1采集到的数据可以存储在CSV、Excel或数据库中等格式。以下是一个将数据存储为CSV文件的示例:
import csv
# 定义数据存储函数
def save_data(data, filename): with open(filename, 'a', newline='', encoding='utf-8') as f: writer = csv.writer(f) writer.writerow(data)
# 设置数据存储文件名
filename = 'weather_data.csv'
# 循环存储数据
for date, max_temp, min_temp, humidity, wind in data_list: save_data([date, max_temp, min_temp, humidity, wind], filename)通过以上步骤,我们可以轻松掌握使用Python采集历史年度天气数据的技巧。在实际应用中,可以根据需要调整爬虫代码和数据存储方式,以满足不同的需求。