吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4705|回复: 36
收起左侧

[Python 转载] 【pyhon笔记】Qmsg酱qq推送天气情况

[复制链接]
DestinyW 发表于 2021-2-27 14:26
本帖最后由 DestinyW 于 2021-3-6 11:08 编辑

[Python] 纯文本查看 复制代码
import requests
import json

webhook = 'https://qmsg.zendee.cn/send/你获取的key'   # Qmsg酱接口
api_url = 'https://tianqiapi.com/api'               # 免费天气接口

city = '城市名字'



weatherParams = {
    'appid': '37824871',            # 必填,也可以填自己注册的
    'appsecret': 'aY5w4uXK',    # 必填,也可以填自己注册的
    'version': 'v6',                    # 必填
    'city': city,                       # 城市代码,名字,ip三选一,默认ip
}

def main_handler(url, params):
    dataList = []                   # 创建空列表
    res = json.loads(requests.get(url, params).text)       # 提交post
    city = res['city']              # 城市名字
    date = res['date']              # 当前日期
    week = res['week']              # 当前星期
    update = res['update_time']     # 更新时间
    wea = res['wea']                # 天气情况
    tem = res['tem']                # 实时温度
    tem1 = res['tem1']              # 温度上限
    tem2 = res['tem2']              # 温度下限
    hunidity = res['humidity']      # 湿度
    win = res['win']                # 风向
    win_speed = res['win_speed']    # 风力等级
    visibility = res['visibility']  # 能见度
    air = res['air']                # 空气质量
    air_level = res['air_level']    # 空气质量等级
    air_tips = res['air_tips']      # 空气质量描述

    dataList.extend(
        [city, date, week, update, wea, tem, tem1, tem2, hunidity, win, win_speed, visibility, air, air_level,
         air_tips])                 # 向空列表中追加天气内容
    QQPusher(dataList)


def QQPusher(dataList):
    data = {
        'msg': '今日天气推送🍀 \n---\n城市:{}\n日期:{}\n星期:{}\n更新日期:{}\n---\n天气情况:{}\n 实时温度:{}℃, 温度范围:{}/{}℃\n湿度:{}\n---\n风向{}\n风力等级:{}\n能见度:{}\n---\n空气质量:{}\n空气质量等级:{}\n空气质量描述:{}\n温馨提示:疫情期间,外出请佩戴口罩!'.format(
            dataList[0], dataList[1], dataList[2], dataList[3], dataList[4], dataList[5], dataList[6], dataList[7],
            dataList[8], dataList[9], dataList[10], dataList[11], dataList[12], dataList[13], dataList[14])
    }
    requests.post(webhook, data)

main_handler(api_url, weatherParams)



测试截图:自己改一下那个qmsg酱的接口链接就行了,需要注册并添加好友
2.png



可以放到腾讯云函数里面,亲测可用

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| DestinyW 发表于 2021-3-12 14:05
夕尘幽兰 发表于 2021-3-12 11:33
有没有server酱推送的版本啊?感谢分享

接口换成server的链接,消息格式换成server的格式就行了
[Python] 纯文本查看 复制代码
# -*- coding: utf8 -*-
import requests
import json


qq = 'https://qmsg.zendee.cn/send/'  # Qmsg酱接口
wechat = 'https://sc.ftqq.com/.send'   # server酱接口
api_url = 'https://tianqiapi.com/api'  # 免费天气接口

yourcity = '东莞'

weatherParams = {
    'appid': '37824871',  # 必填
    'appsecret': 'aY5w4uXK',  # 必填
    'version': 'v6',  # 必填
    'city': yourcity,  # 城市代码,名字,ip三选一,默认ip
}



def getApi(url, params):
    dataList = []  # 创建空列表
    res = json.loads(requests.get(url, params).text)  # 提交post
    city = res['city']  # 城市名字
    date = res['date']  # 当前日期
    week = res['week']  # 当前星期
    update = res['update_time']  # 更新时间
    wea = res['wea']  # 天气情况
    tem = res['tem']  # 实时温度
    tem1 = res['tem1']  # 温度上限
    tem2 = res['tem2']  # 温度下限
    hunidity = res['humidity']  # 湿度
    win = res['win']  # 风向
    win_speed = res['win_speed']  # 风力等级
    visibility = res['visibility']  # 能见度
    air = res['air']  # 空气质量
    air_level = res['air_level']  # 空气质量等级
    air_tips = res['air_tips']  # 空气质量描述

    dataList.extend(
        [city, date, week, update, wea, tem, tem1, tem2, hunidity, win, win_speed, visibility, air, air_level,
         air_tips])  # 向空列表中追加天气内容
    QQPusher(dataList)


def QQPusher(dataList):
    data1 = {
        'msg': '今日天气推送🍀 \n---\n城市:{}\n日期:{}\n星期:{}\n更新日期:{}\n---\n天气情况:{}\n 实时温度:{}℃, 温度范围:{}/{}℃\n湿度:{}\n---\n风向{}\n风力等级:{}\n能见度:{}\n---\n空气质量:{}\n空气质量等级:{}\n空气质量描述:{}\n温馨提示:疫情期间,外出请佩戴口罩!'.format(
            dataList[0], dataList[1], dataList[2], dataList[3], dataList[4], dataList[5], dataList[6], dataList[7],
            dataList[8], dataList[9], dataList[10], dataList[11], dataList[12], dataList[13], dataList[14])
    }
    data2 = {
        'text': '东莞市天气状况',
        'desp': '今日天气推送🍀 \n---\n城市:{}\n日期:{}\n星期:{}\n更新日期:{}\n---\n天气情况:{}\n 实时温度:{}℃, 温度范围:{}/{}℃\n湿度:{}\n---\n风向{}\n风力等级:{}\n能见度:{}\n---\n空气质量:{}\n空气质量等级:{}\n空气质量描述:{}\n温馨提示:疫情期间,外出请佩戴口罩!'.format(
            dataList[0], dataList[1], dataList[2], dataList[3], dataList[4], dataList[5], dataList[6], dataList[7],
            dataList[8], dataList[9], dataList[10], dataList[11], dataList[12], dataList[13], dataList[14])
    }

    requests.post(qq, data1)   # qq推送

    requests.post(wechat, data2)   #  微信推送


getApi(api_url, weatherParams)
夕尘幽兰 发表于 2021-3-13 14:44
DestinyW 发表于 2021-3-13 08:20
因为腾讯云函数那里上面那个执行方法默认是main_handler,你只需要把两个getApi替换成main_handler就行了

换了之后是这个报错:
{"errorCode":-1,"errorMessage":"user code exception caught","stackTrace":"Traceback (most recent call last):\n  File \"/var/user/index.py\", line 23, in main_handler\n    res = json.loads(requests.get(url, params).text)  # 提交post\n  File \"/var/lang/python3/lib/python3.6/site-packages/requests/api.py\", line 75, in get\n    return request('get', url, params=params, **kwargs)\n  File \"/var/lang/python3/lib/python3.6/site-packages/requests/api.py\", line 60, in request\n    return session.request(method=method, url=url, **kwargs)\n  File \"/var/lang/python3/lib/python3.6/site-packages/requests/sessions.py\", line 533, in request\n    resp = self.send(prep, **send_kwargs)\n  File \"/var/lang/python3/lib/python3.6/site-packages/requests/sessions.py\", line 640, in send\n    adapter = self.get_adapter(url=request.url)\n  File \"/var/lang/python3/lib/python3.6/site-packages/requests/sessions.py\", line 731, in get_adapter\n    raise InvalidSchema(\"No connection adapters were found for '%s'\" % url)\nrequests.exceptions.InvalidSchema: No connection adapters were found for '{'key1': 'test value 1', 'key2': 'test value 2'}'","statusCode":430}
 楼主| DestinyW 发表于 2021-2-27 14:27
雷欧库珀 发表于 2021-2-27 14:28
DestinyW 发表于 2021-2-27 14:27
啊?萌新第一次发帖不知道怎么弄代码

<>这个图标就是了
fake 发表于 2021-2-27 14:55
云函数怎么弄  能简单说一下吗
IsMe9666 发表于 2021-2-27 15:18
大哥,代码格式能整理一下不...都跑不出来
SKgarlic 发表于 2021-2-27 15:36
谢谢分享
星星之夜 发表于 2021-2-27 16:00
感谢分享
 楼主| DestinyW 发表于 2021-2-27 17:08
fake 发表于 2021-2-27 14:55
云函数怎么弄  能简单说一下吗

就点新建,然后在线编辑就行了
 楼主| DestinyW 发表于 2021-2-27 17:14
yu17863200980 发表于 2021-2-27 15:18
大哥,代码格式能整理一下不...都跑不出来

现在可以了吗
IsMe9666 发表于 2021-2-27 17:25
{"errorCode":-1,"errorMessage":"Traceback (most recent call last):\n  File \"/var/runtime/python3/bootstrap.py\", line 133, in init_handler\n    func_handler = get_func_handler(file.rsplit(\".\", 1)[0], func)\n  File \"/var/runtime/python3/bootstrap.py\", line 160, in get_func_handler\n    return getattr(mod, fname)\nAttributeError: module 'index' has no attribute 'main_handler'","requestId":"5eb5bac9-ba69-4f98-a48c-0d04d2125450","statusCode":443}
我本地使用pycharm可以运行,放到腾讯云函数报以上错误
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 09:58

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表