前言:
自从微信禁止网页版登陆之后,itchat 库也就都不能用了,新号不能再登录网页版,而且itchat 库在headers里面只放了UserAgent,其他字段都没有放。所以在你登录的瞬间,微信就已经知道你这个账号没有用浏览器登录了!
这篇博客就简单来介绍一个wxauto库来操作微信。
地址:
cluic/wxauto: Windows版本微信客户端(非网页版)自动化,可实现简单的发送、接收微信消息,持续更新中 (github.com)
一个简单的样例:
from wxauto import *
send_msg = '你好' # 发送消息内容
who = '文件传输助手' # 指定发送对象
# 获取当前微信客户端
wx = WeChat()
# 向某人发送消息(以`文件传输助手`为例)
wx.ChatWith(who) # 打开`文件传输助手`聊天窗口
wx.SendMsg(send_msg) # 向`文件传输助手`发送消息:你好~
自动回复样例:
import requests
from wxauto import *
import time
import re
send_msg = '你好' # 发送消息内容
who = '文件传输助手' # 指定发送对象
# 获取当前微信客户端
wx = WeChat()
# 获取会话列表
SessionList=wx.GetSessionList()
print(wx.GetAllMessage[-1][1][:4])
print(wx.GetSessionList()[4])
# 群聊白名单,此将不会触发自动回复名单内
rigthlist={"没太多对错":0,"":0}
while (True):
# 自动回复
print(wx.GetAllMessage[-1])
# wx.GetSessionList()[4] != SessionList[4] and
if ( wx.GetAllMessage[-1][0]!='你的id'
if(wx.GetSessionList()[4] in rigthlist.keys() ):
print("触发白名单,该群不做回复!")
else:
print(SessionList[4] + wx.GetSessionList()[4] + "\n")
SessionList = wx.GetSessionList()
who = wx.GetSessionList()[4]
wx.ChatWith(who)
wx.SendMsg("自动回复:我的主人暂时不在电脑前,请稍候联系!")
# ai回复
#此处利用了微信对话开放平台的api
url = 'https://openai.weixin.qq.com/openapi/sign/'
data = {
'userid': "",
}
r = requests.post(url, data, )
url = "https://openai.weixin.qq.com/openapi/aibot/"
# 最近的消息
query = wx.GetAllMessage[-1][1]
data = {
"signature":r.json()["signature"],
"query": query
}
r = requests.post(url, data, )
print(r.json()["answer"])
who = SessionList[4]
wx.ChatWith(who)
wx.SendMsg("来自助手ai小微的消息:" + r.json()["answer"])
#有人艾特你
if(wx.GetAllMessage[-1][1][:4]=="你的群昵称"
#此处使用了另一个免费的ai回复api
url = 'http://api.qingyunke.com/api.php'
data = {
'key': "free",
'appid': '0',
"msg": wx.GetAllMessage[-1][1][4:]
}
r = requests.get(url, data, )
print(r.json())
senddata=r.json()["content"]
who = wx.GetSessionList()[4]
wx.ChatWith(who)
wx.SendMsg("来自助手小皮的消息:"+senddata)
time.sleep(2)
这段代码使用 wxauto 库与电脑上的微信客户端交互的脚本。脚本首先导入必要的库,包括 requests 和 wxauto。然后,它初始化一个 WeChat 对象,该对象代表微信客户端,并定义要发送的消息和收件人。
脚本然后进入无限循环,不断检查新消息。如果收到了新消息,并且该消息不是来自特定用户(由 if 语句指示),脚本将使用预定义的消息回复该消息,然后使用 requests 库发送请求到 web API。然后将 API 的响应提取出来并作为消息发送回收件人。
其中脚本还有一些代码,检查群聊“白名单”,如果群聊在列表中,则跳过自动响应。
需要注意的是:
使用ui进行操作,功能有限,比如只能监听一个窗口的消息,需要一定的手工操作,不能完全自动。
使用ui进行操作,动作较慢,不能立即回复,并且回复消息时需要窗口在前端。
使用时请确保微信是在登录状态。
更多内容请关注:文章来源:https://www.toymoban.com/news/detail-571129.html
文章来源地址https://www.toymoban.com/news/detail-571129.html
到了这里,关于微信自动回复(python)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!