微信自动回复(python)

微信自动回复(python)_第1张图片

前言:

自从微信禁止网页版登陆之后,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进行操作,动作较慢,不能立即回复,并且回复消息时需要窗口在前端。
使用时请确保微信是在登录状态。

更多内容请关注:

微信自动回复(python)_第2张图片

你可能感兴趣的:(Pyhon,python,微信,开发语言)