栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

实时天气爬取

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

实时天气爬取

文章目录
  • 一、需求
  • 二、概要设计
  • 三、详细设计
  • 四、todo

一、需求

获取某一地点的实时天气,并对特殊天气做出特殊提醒。

二、概要设计
  1. 获取当前实时位置
  2. 获取当前位置天气
  3. 对天气做出响应
三、详细设计
  1. 位置获取
    可以通过GPS或者其它操作来获取设备位置,未实现,这里简单返回地址。
def get_location():
    location="四川省成都市郫都区"
    return location
  1. 天气获取
    爬取网页:中国天气网。
    新版的界面信息比较好,所以这里爬取新版页面。另外网页信息是异步加载的方式,选择使用selenium进行爬取。
    为了简单,这里也是直接选定了特定区域的一个网页进行爬取。
from selenium import webdriver
def get_temperature(location=""):
    #todo 获取每个地区对应的页面
    url="http://www.weather.com.cn/weather1dn/101270107.shtml"
    
    chrome_driver="chromedriver.exe"
    #获取天气信息
    driver = webdriver.Chrome(chrome_driver)
    driver.get(url)
    msgBtn=driver.find_element_by_class_name("msgBtn")
    msgBtn.click()
    togetherWeatherBox=driver.find_element_by_class_name("togetherWeatherBox")
    mostWeather=togetherWeatherBox.find_element_by_class_name("mostWeather")
    weather=mostWeather.text.split(":")[1].split(",")[0]
    driver.close()
    return weather
  1. 天气响应
    根据天气播放特殊的音乐
from playsound import playsound
def weather_event(weather):
    if weather=="雨":
        playsound(r"music/兰花草(伴奏) - 卓依婷.mp3")
    elif weather=="雪":
        playsound(r"music/铃儿响叮当(英文版) - 黑鸭子.mp3")
    else:
        pass
  1. 主模块
if __name__ == '__main__':
    loc=get_location()
    wea=get_temperature(loc)
    weather_event(wea)
四、todo
  1. 获取设备地址,通过本机的GPS或者ip进行获取,或者其它方式
  2. 通过地址获得中国天气网的对应页面
  3. 输出更多的天气信息
  4. selenium爬取进行优化,不显示浏览器界面,不加载图片等
  5. 实现线程,定时执行
  6. 图形界面
  7. 等待官网的新版界面的完善emmm
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/349833.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号