Python爬虫山东重庆各地区天气预报

天气数据获取工具

简单的Python脚本用于从中国天气网(http://www.weather.com.cn/textFC/chongqing.shtml)获取天气数据,并将数据保存到Excel文件中。
运行效果

功能

输入中文省份名称,获取该省份下所有城市的天气数据。

数据保存到指定文件夹中,文件名格式为:时间_省份_城市.xlsx。

使用方法

安装必要的库

bash 复制代码
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

```

注意事项

请确保网络连接正常,否则无法从中国天气网获取数据。

确保已经安装所需的依赖。

完整代码

python 复制代码
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}")

Github仓库地址

https://github.com/Wcowin/Weather
源码开源

相关推荐
疯狂打码的少年2 分钟前
【数据结构】栈的应用:表达式求值(后缀表达式)
java·数据结构·笔记·算法
HiDev_13 分钟前
【非标自动化】plc执行顺序问题、扫描周期问题
深度学习·算法·机器学习
高洁0141 分钟前
工信部教考中心证书-人工智能系列本系列
人工智能·python·深度学习·算法
陈王卜1 小时前
Reduce 算子优化笔记
算法
wabs6661 小时前
关于图论【最短路径之Bellman_ford 算法(判断负权回路)|卡码网95.城市间货物运输II的思考】
数据结构·算法·图论·bellman_ford算法·卡码网·判断负权回路
YouonlyliveonceC1 小时前
《大话数据结构》第4章实战:中缀表达式转后缀 + 后缀表达式求值(完整可运行实现)
算法
phoenix@Capricornus1 小时前
从统计决策到贝叶斯估计
人工智能·算法·机器学习
Patrick在香港2 小时前
Python爬虫框架实战:优雅抓取香港政府公开API数据的通用方案
java·开发语言·爬虫·python·ai编程·数据可视化·可用性测试
AICDragon2 小时前
1.8%就够了:K3的896个MoE专家,为什么激活率这么低反而是好事?
人工智能·算法
VALENIAN瓦伦尼安教学设备2 小时前
ASHOOTER激光对中仪如何通过颜色确定调整是否合适
数据库·嵌入式硬件·算法