如何用Python向微信发送消息

文摘   2024-11-14 08:33   上海  

如何用Python向微信发送消息

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

1. 安装必要的库

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

pip install itchat

2. 登录微信

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

import itchat

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

3. 获取好友列表

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

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

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

4. 发送文本消息

接下来,我们来看看如何向好友发送文本消息。假设我们要给一个昵称为 "朋友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。

5. 发送图片和文件

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

# 发送图片
itchat.send_image('path/to/your/image.jpg', toUserName=friend['UserName'])
  • send_image(fileDir, toUserName):发送图片,fileDir 是图片的路径,toUserName 是接收者的用户ID。

6. 接收消息

有时候我们不仅需要发送消息,还需要接收消息并做出响应。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():启动消息监听。

7. 实战案例:自动天气提醒

假设我们想每天早上给好友发送一条天气预报。我们可以结合 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向微信发送消息。我们从安装库、登录微信、获取好友列表、发送文本消息、发送图片和文件、接收消息,到最后的实战案例——自动天气提醒,一步步掌握了这些技能。

好了,今天的分享就到这里了,我们下期见。如果本文对你有帮助,请动动你可爱的小手指点赞、转发、在看吧!

付费合集推荐

Python编程基础

Python办公自动化-Excel

微信公众号批量上传发布系统

文末福利

公众号消息窗口回复“编程资料”,获取Python编程、人工智能、爬虫等100+本精品电子书。

精品系统

微信公众号批量上传发布系统

关注我👇,精彩不再错过


手把手PythonAI编程
分享与人工智能和python编程语言相关的笔记和项目经历。
 最新文章