Python爬虫山东重庆各地区天气预报
2023-12-20 23:01:54
天气数据获取工具
简单的Python脚本用于从中国天气网(http://www.weather.com.cn/textFC/chongqing.shtml)获取天气数据,并将数据保存到Excel文件中。
功能
输入中文省份名称,获取该省份下所有城市的天气数据。 ? ?
数据保存到指定文件夹中,文件名格式为:时间_省份_城市.xlsx。 ?
使用方法
安装必要的库
pip install -r requirements.txt
requirements.txt:?
lxml
pypinyin
pandas
tkinter
openpyxl
运行脚本
输入中文省份名称,脚本会自动获取天气数据并保存到天气数据文件夹。
运行程序
双击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)])
# 构造天气数据的URL
url = 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 None
if 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}")
文章来源:https://blog.csdn.net/m0_63203517/article/details/135117874
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!