目标:python定时发送微信天气

实现思路:

1.使用python自带模块os.system模块,打开微信聊天界面(需提前登录);

2.使用第三方模块 pywinauto.keyboard.send_keys查找(CTRL+F)微信聊天对象;

3.使用第三方模块,输入聊天内容,并按下回车键执行发送。

代码:

第一步:引入模块:

第二步:带卡微信聊天界面:

按下(Ctrl+f快速查找聊天对象):=====啥没对象?发自己也行!

按下回车键进入聊天界面:

 第三步:输入聊天内容:

全部代码如下:

"""
用以自动发送信息给关心的对象人。
新手小白,代码冗长,见笑了。
纯属分享,记录自己的学习过程。
------- By Yyang
"""


import re #正则表达式
from time import sleep#休眠
from os import system
import requests#爬虫
from pywinauto.keyboard import send_keys#键盘


def get_weather02(value):
    '''获取天气情况'''
    #伪装浏览头
    headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36'}
    #url链接
    url = 'http://t.weather.itboy.net/api/weather/city/{0}'.format(value)
    # 广州101280101
    # 东莞101281601----其他地区自行百度

    #获取响应
    res = requests.get(url=url, headers=headers)
    # print(res.text)#打印测试

    #提取数据
    ymd = findall('"ymd":"(.*?)"', res.text)[1]  # 年月日
    week = findall('"week":"(.*?)"', res.text)[1]  # 星期
    high = findall('"high":"高温(.*?)"', res.text)[1]  # 最高温度
    low = findall('"low":"低温(.*?)"', res.text)[1]  # 最低温度
    type0 = findall('"type":"(.*?)"', res.text)[1]  # 天气类型
    notice = findall('"notice":"(.*?)"', res.text)[1]  # 提示
    # print(ymd, week, type0, low, high, notice)

    #拼接数据
    text = '明天:' + ymd + '--' + week + '^{ENTER}' + '天气:' + type0 + \
        '^{ENTER}' + '气温:' + low + '-------' + \
        high + '^{ENTER}' + 'tips:' + notice

    return text




def get_weather01():
    """获取天气情况-------有次数限制使用新方法获取---02"""
    #链接
    url ="http://apis.juhe.cn/simpleWeather/query"
    #传入参数
    params = {
        'city': '广州',
        'key': '7612ddda2313a41481327cbef5261b46',
    }
    #获取响应
    response = requests.post(url=url, data=params).text
    # print(response)#打印测试
    #、提取数据
    data = re.findall('"date":"(.*?)",', response)[1]#  日期
    weather = re.findall('"weather":"(.*?)",', response)[2]#天气
    temperature = re.findall('"temperature":"(.*?)",',
                             response)[2].replace('\\/', '℃--')#温度
    
    #拼接文本
    text = '明天:' + data + '^{ENTER}' + '天气:' + weather + \
        '^{ENTER}' + '气温:' + temperature + '^{ENTER}'

    return text


if __name__ == '__main__':

    #text = get_weather()  # 天气----旧方法
    text =get_weather02(value=101280101)


    # 微信安装路径----------=====----=================自行修改=======
    wechat_path = r'D:\win7\WeChat\WeChat.exe'  # ===自行修改========
    system(wechat_path)  # 打开微信



    send_keys('^f')  # 按下查找快捷键
    send_keys('文件')  # 查找聊天对象=================自行修改========

    sleep(3)
    send_keys('{ENTER}')  # 按下回车键-进入聊天窗口
    sleep(0.5)


    # 组合文字=================自行修改========
    text1 = '❤❤❤晚安哦❤❤❤!' + \
        '^{ENTER}下面为你推送明天天气:^{ENTER}^{ENTER}' + text \
        + '^{ENTER}' + '祝好梦,梦里有我。'

    send_keys('text1')  # 输入聊天内容
    send_keys('{ENTER}')  # 按下回车键  点击发送

新手之作,谢谢。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐