python爬虫(21)给微信好友发送天气预报

用微信定时给好友发送天气预报

环境

系        统:windows10系统
编  辑  器:Sublime3
编程语言:python3
库           :wxpy、tkinter

前言

之前写过一个程序,获取7天内天气预报的,但是仅仅是获取到七天内某个城市的天气预报,没有想过具体的实际案例。
随后看了一些其他的模块,感觉跟微信结合起来的应用场景还是挺实用的,然后就把它折腾出来了。

基本功能

基本功能其实也是核心功能,主要就是获取指定城市的天气情况
本次利用的是百度的一个api网址:
http://api.map.baidu.com/telematics/v3/weather?location=%s&output=json&ak=TueGDhCvwI6fOrQnLM0qmXxY9N0OkOiQ&callback=?
其中location这个参数后面跟的就是城市,调用这个api可以获取到当前城市天气情况,比如北京当前天气:

得到的是json数据,经过简单的处理就可以得到能看的数据

核心程序如下:

#发送天气情况
def send_weather(location):

    path ='http://api.map.baidu.com/telematics/v3/weather?location=%s&output=json&ak=TueGDhCvwI6fOrQnLM0qmXxY9N0OkOiQ&callback=?'
    url = path % location
    print(url)
    response = requests.get(url)
    result = response.json()

    #如果城市错误就按照海淀发送天气
    if result['error'] !=0:
        location ='海淀'
        url = path % location
        print(url)
        response = requests.get(url)
        result = response.json()

    str0 = ('    这是今天的天气预报!\n')
    results = result['results']

    # 取出数据字典

    data1 = results[0]

    # 取出城市
    city = data1['currentCity']
    str1 ='    当前地区: %s\n' % city

    # 取出pm2.5值
    pm25 = data1['pm25']
    str2 ='    Pm值    : %s\n' % pm25

    # 将字符串转换为整数 否则无法比较大小
    if pm25 =='':
        pm25 =0
    pm25 =int(pm25)

    # 通过pm2.5的值大小判断污染指数
    if 0 <= pm25 <35:
        pollution ='优'
    elif 35 <= pm25 <75:
        pollution ='良'
    elif 75 <= pm25 <115:
        pollution ='轻度污染'
    elif 115 <= pm25 <150:
        pollution ='中度污染'
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值