如何用 Python 向微信发送消息

开发
今天我们将一起学习了如何使用Python向微信发送消息。这个技能不仅可以帮助你在自动化任务中与人交流,还可以用来做各种有趣的小项目,比如天气提醒、股票更新等。

大家好,今天我们要学习的是如何使用Python向微信发送消息。这个技能不仅可以帮助你在自动化任务中与人交流,还可以用来做各种有趣的小项目,比如天气提醒、股票更新等。

安装必要的库

首先,我们需要安装一些必要的库。这里我们主要使用 itchat 库,它是一个开源的微信个人号接口,可以帮助我们轻松地发送和接收微信消息。

pip install itchat

登录微信

使用 itchat 登录微信非常简单。只需要几行代码就可以实现:

import itchat

# 登录微信
itchat.auto_login(hotReload=True)

auto_login(hotReload=True):这个函数会生成一个二维码,扫描后即可登录。hotReload=True 表示保持登录状态,这样下次运行时就不需要重新扫码了。

获取好友列表

登录成功后,我们可以获取好友列表,以便知道可以向谁发送消息。

# 获取好友列表
friends = itchat.get_friends(update=True)

# 打印好友列表
for friend in friends:
    print(friend['NickName'])
  • get_friends(update=True):获取好友列表,update=True 表示强制更新好友列表。
  • friend['NickName']:好友的昵称。

发送文本消息

接下来,我们来看看如何向好友发送文本消息。假设我们要给一个昵称为 "朋友A" 的好友发送消息:

# 查找好友
friend = itchat.search_friends(name='朋友A')[0]

# 发送消息
itchat.send_msg('你好,这是来自Python的消息!', toUserName=friend['UserName'])
  • search_friends(name='朋友A'):根据昵称搜索好友,返回一个列表,取第一个元素。
  • send_msg(message, toUserName):发送消息,message 是要发送的内容,toUserName 是接收者的用户ID。

发送图片和文件

除了文本消息,我们还可以发送图片和文件。这里以发送图片为例:

# 发送图片
itchat.send_image('path/to/your/image.jpg', toUserName=friend['UserName'])

send_image(fileDir, toUserName):发送图片,fileDir 是图片的路径,toUserName 是接收者的用户ID。

接收消息

有时候我们不仅需要发送消息,还需要接收消息并做出响应。itchat 提供了消息监听的功能:

@itchat.msg_register(itchat.content.TEXT)
def text_reply(msg):
    # 打印接收到的消息
    print(f"收到消息:{msg['Text']},来自:{msg['FromUserName']}")
    
    # 回复消息
    itchat.send_msg('我收到了你的消息!', toUserName=msg['FromUserName'])

# 运行消息监听
itchat.run()
  • @itchat.msg_register(itchat.content.TEXT):注册一个文本消息监听器。
  • text_reply(msg):处理接收到的文本消息,msg 是包含消息信息的字典。
  • itchat.run():启动消息监听。

实战案例:自动天气提醒

假设我们想每天早上给好友发送一条天气预报。我们可以结合 requests 库来获取天气数据,并使用 itchat 发送消息。

首先,安装 requests 库:

pip install requests

然后编写代码:

import itchat
import requests
from datetime import datetime

# 登录微信
itchat.auto_login(hotReload=True)

# 获取天气数据
def get_weather():
    url = 'https://api.openweathermap.org/data/2.5/weather?q=北京&appid=YOUR_API_KEY&units=metric'
    response = requests.get(url)
    data = response.json()
    weather = data['weather'][0]['description']
    temperature = data['main']['temp']
    return f"今天的天气是 {weather},温度是 {temperature}°C"

# 发送天气提醒
def send_weather_reminder():
    friend = itchat.search_friends(name='朋友A')[0]
    message = get_weather()
    itchat.send_msg(message, toUserName=friend['UserName'])

# 每天早上8点发送天气提醒
while True:
    now = datetime.now()
    if now.hour == 8 and now.minute == 0:
        send_weather_reminder()
        time.sleep(60)  # 防止重复发送

# 保持程序运行
import time
while True:
    time.sleep(1)
  • get_weather():从 OpenWeatherMap API 获取天气数据。
  • send_weather_reminder():发送天气提醒消息。
  • while True 循环:每隔一秒钟检查当前时间,如果时间是早上8点整,则发送天气提醒。

总结

今天我们一起学习了如何使用Python向微信发送消息。我们从安装库、登录微信、获取好友列表、发送文本消息、发送图片和文件、接收消息,到最后的实战案例——自动天气提醒,一步步掌握了这些技能。

责任编辑:赵宁宁 来源: 手把手PythonAI编程
相关推荐

2021-11-06 19:43:34

Python微信服务器

2022-04-16 12:46:28

Python微信

2014-09-24 11:32:21

微信企业号开发

2009-12-15 13:41:49

Ruby向对象发送消息

2014-09-28 22:34:09

微信企业号

2013-04-12 01:22:02

2014-11-17 11:13:17

易维

2014-09-24 13:38:29

企业号

2015-08-07 15:39:26

仿微信语音界面源码

2013-04-12 01:51:08

微信公众平台接口开发

2014-09-24 11:11:08

微信企业号开发

2018-12-14 14:58:04

Python微信消息

2018-07-25 13:34:14

Python微信撤回

2016-10-11 16:31:56

微信服务器消息

2016-11-02 13:12:31

微信离线消息

2013-04-08 16:19:40

微信微信公众平台图文消息

2022-03-01 11:33:36

企业微信Zabbix监控软件

2021-08-10 13:57:37

微信推送技术

2024-08-06 09:55:25

点赞
收藏

51CTO技术栈公众号