天气数据获取工具
简单的Python脚本用于从中国天气网(http://www.weather.com.cn/textFC/chongqing.shtml)获取天气数据,并将数据保存到Excel文件中。
功能
输入中文省份名称,获取该省份下所有城市的天气数据。
数据保存到指定文件夹中,文件名格式为:时间_省份_城市.xlsx。
使用方法
安装必要的库
pip install -r requirements.txt
requirements.txt:
lxml
pypinyin
pandas
tkinter
openpyxl
提示确什么库的话,pip install 即可
如:ModuleNotFoundError: No module named 'pypinyin' 只需要在终端执行‘ pip install pypinyin’
运行脚本
输入中文省份名称,脚本会自动获取天气数据并保存到天气数据文件夹。
运行程序
双击weather.exe运行程序,输入中文省份名称,会自动获取天气数据并保存为excel文件。
配置
默认输出文件夹:天气数据
默认输出文件名:当天日期-当前时间-省份.xlsx
依赖
```
pandas
openpyxl
pypinyin
```
注意事项
请确保网络连接正常,否则无法从中国天气网获取数据。
确保已经安装所需的依赖。
完整代码
import os
import pandas as pd
from datetime import datetime
from pypinyin import pinyin, Style# 获取指定省份的天气数据,并保存到指定文件夹中
def get_weather_data(province_name, output_folder='天气数据', output_filename='output.xlsx'):# 将中文省份名称转换为拼音pinyin_name = ''.join([''.join(item) for item in pinyin(province_name, style=Style.NORMAL)])# 构造天气数据的URLurl = f"http://www.weather.com.cn/textFC/{pinyin_name}.shtml"try:# 使用pandas的read_html函数读取网页中的表格数据tables = pd.read_html(url)except Exception as e:print(f"Error: {e}")return Noneif not tables:print(f"No valid tables to process for {province_name}.")return None# 合并所有表格的数据all_data = pd.concat([table.iloc[:, :-1] for table in tables])# 确保输出文件夹存在os.makedirs(output_folder, exist_ok=True)# 生成带有路径的输出文件名output_filename = generate_output_filename(output_folder, pinyin_name, output_filename)# 将数据保存到Excel文件中all_data.to_excel(output_filename, index=False)return output_filename# 生成带有时间戳和省份拼音的输出文件名
def generate_output_filename(output_folder, pinyin_name, base_filename):timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")return os.path.join(output_folder, f"{timestamp}_{pinyin_name}_{base_filename}")if __name__ == "__main__":# 从终端输入省份名称province_name = input("请输入省份名称(中文): ")output_folder = '天气数据'# 获取天气数据并保存到文件中output_filename = get_weather_data(province_name, output_folder=output_folder)if output_filename:print(f"Data saved to {output_filename}")
Github仓库地址
https://github.com/Wcowin/Weather