我的编程空间,编程开发者的网络收藏夹
学习永远不晚

利用python对微信自动进行消息推送

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

利用python对微信自动进行消息推送

from wxpy import *   #该库主要是用来模拟与对接微信操作的
import requests
from datetime import datetime
import time
import  schedule
from apscheduler.schedulers.blocking import BlockingScheduler #定时框架

首先引入所需要的库,如果不存在,请先使用pip进行安装

pip install schedule

 接下来进行微信登录

bot = Bot(cache_path=True)

cache_path = True表示开启缓存,这样在缓存生效的时间内可以避免每次启动程序都进行微信扫码了

然后我们写一个变量,用来存在图灵机器人的key,后面会用到(去图灵申请一个免费的机器人即可)

tuling = Tuling(api_key="图灵机器人的key")

接下来就是主要内容了,在这里我们将对微信好友发送天气提醒,所以先创建一个函数,用来维护接收该消息的好友名单

"""推送名单维护"""
def weather_friend():   #定义一个名为weather_friend的函数
    # 天气推送名单
    my_friends = []   # 创建一个空列表,用来存放好友名单
    my_friends.append(bot.friends().search(u'单伊夏')[0]) # 搜索指定好友并添加至列表
    my_friends.append(bot.friends().search(u'?')[0])
    my_friends.append(bot.friends().search(u'佐之格⊙魅殇')[0])
    return my_friends

此处搜索指定好友时,可以根据好友的微信名称进行搜索。假如你有一个特别爱换昵称的好友,我们也可以用备注名称来搜索,语句都是一样的。

发送名单有了,我们该准备发送的内容了:

def Weather(location): # 定义一个发送天气的函数,并需要接收一个参数(该参数是好友在微信中设置的地点)
    #准备url地址
    path ='http://api.map.baidu.com/telematics/v3/weather?location=%s&output=json&ak=TueGDhCvwI6fOrQnLM0qmXxY9N0OkOiQ&callback=?'
    url = path % location
    response = requests.get(url) # 对该地址和参数进行get请求
    result = response.json() # 将返回的结果转成json串
  # 为了防止因好友未设置地点而导致程序报错,所以需要对返回的error参数进行判断 if int(result['error']) != 0: # 当error为0时,搜索是正常的,一旦不等于0,表示存在错误 location = '北京' # 此时将地址设为一个默认地址 如北京 url = path % location # 拼接新的url response = requests.get(url) # 在对新的url进行get请求 result = response.json()
  # 下面就是对正确请求到数据后的结果进行处理了 # 问候语 greetings = (' 早上好!这是今天的天气预报!……\n机器人:你的小野猫\n') try: # 此处增加异常处理是因为当好友设置的地区为国外的时候,error返回值不会报错,但不会有results # 取出天气结果 results = result['results'] except: return "啊哦,我迷路了,找不到地点!" # 当没有该地区的结果时,函数直接返回字符串,此时函数结束
  # 当正常取出结果后,继续进行下列操作
# 取出数据字典第一天数据 data1 = results[0] # 取出城市 city = data1['currentCity'] str1 = ' 你的城市: %s\n' % city # 取出pm2.5值 pm25 = data1['pm25'] str2 = ' PM值: %s\n' % pm25 # 评估空气质量 pollution = calculate(pm25) # 此时调用calculate函数进行计算,所以该函数要写在此函数之前 str3 = ' 污染指数: %s\n' % pollution result1 = results[0] weather_data = result1['weather_data'] data = weather_data[0] temperature_now = data['date'] str4 = ' 当前温度: %s\n' % temperature_now wind = data['wind'] str5 = ' 风向 : %s\n' % wind weather = data['weather'] str6 = ' 天气 : %s\n' % weather str7 = ' 温度 : %s\n' % data['temperature'] try: # 此处异常操作是因为有时候返回结果里面不存在下方内容 message = data1['index'] str8 = ' 穿衣 : %s\n' % message[0]['des'] str9 = ' 我很贴心: %s\n' % message[2]['des'] str10 = ' 运动 : %s\n' % message[3]['des'] str11 = ' 紫外线 : %s\n' % message[4]['des'] str = greetings + str1 + str2 + str3 + str4 + str5 + str6 + str7 + str8 + str9 + str10 + str11 except: str = greetings + str1 + str2 + str3 + str4 + str5 + str6 + str7 return str

此段代码是我从网上找来的,由于源代码存在一些问题,很容易报错,所以有的地方加了异常处理

补充上计算pm2.5的函数

# 计算pm2.5的程度
def calculate(pm):
    if pm == '':
        pm25 = -1
    else:
        pm25 = int(pm)
        # 通过pm2.5的值大小判断污染指数
        if 0 <= pm25 < 35:
            pollution = '优'
        elif 35 <= pm25 < 75:
            pollution = '良'
        elif 75 <= pm25 < 115:
            pollution = '轻度污染'
        elif 115 <= pm25 < 150:
            pollution = '中度污染'
        elif 150 <= pm25 < 250:
            pollution = '重度污染'
        elif pm25 >= 250:
            pollution = '严重污染'
        else:
            pollution = '希望你健在'
        return pollution

下面我们创建一个发送函数

# 1- 天气推送
def send_weather():
    my_friends = weather_friend()
    # 发送给好友
    for friend in my_friends:
        friend.send(Weather(friend.city)) # friend.city 可获取到好友在微信上设置的地点
    # 给文件传输助手发送消息
    bot.file_helper.send('天气推送完毕')

最后我们创建一个定时器,时间一到,就调用发送函数

"""推送时间维护"""
print('star')
sched = BlockingScheduler()
sched.add_job(send_weather, 'cron', month='1-12', day='1-31', hour=7, minute=0) # 表示每天的7点发送
sched.start()

故此,结束了

整理一下整体思路:定时器,时间一到就调用发送函数,发送函数调用好友函数并获取位置,传给天气函数,天气函数进行处理并返回发送内容,最后发送给相关好友了

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

利用python对微信自动进行消息推送

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

利用python对微信自动进行消息推送

from wxpy import * #该库主要是用来模拟与对接微信操作的import requestsfrom datetime import datetimeimport timeimport schedulefrom apsch
2023-01-30

Python|怎么自动定时在微信中发送消息

这篇文章将为大家详细讲解有关Python|怎么自动定时在微信中发送消息,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 用Python编程语言,做一个简单的Demo演示如何自动发送消息。 先对问
2023-06-06

怎么用vbs实现微信自动发送消息功能

这篇文章主要介绍了怎么用vbs实现微信自动发送消息功能的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么用vbs实现微信自动发送消息功能文章都会有所收获,下面我们一起来看看吧。1、微信自动回复消息微信,作为日前
2023-06-30

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录