如何用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编程、人工智能、爬虫等100+本精品电子书。