python基于windows版微信做一个聊天机器人(代码片段)

轻松学Python 轻松学Python     2022-12-01     390

关键词:

文章目录

前言

哈喽大家好!又到了学Python时刻~

web版的微信有专门的实时收发消息api,可以用Python直接调用,但是现在基本上登录不了web版微信,所以就用不了了。

但这不是还有windows版的微信吗,于是在基于前辈写好的第三方库,今天我们来实现一下实时收发信息,实现自动聊天机器人。

效果展示

微信实时收发消息

1、第三方库

基于第三方pc-wechat-hook-http-api实现微信实时收发消息。

需要注意的是,此库基于3.6.0.18版本微信。下载对应版本微信后,直接覆盖安装,这样可以保留聊天记录。

2、开启注入dll

想要实时获取微信消息,需要劫持响应的入口。这一部分内容我们无需过多关心技术细节,只需傻瓜式点击一下即可。

从pc-wechat-hook-http-api官方地址下载到如下三个文件。


将HPSocket4C.dll文件复制到微信目录下(例如E:\\Tencent\\WeChat[3.6.0.18])

点击Daen注入器.exe文件:

其中:

1.文件目录是指微信安装路径,参考上图。
2.DLL路径指的是DaenWxHook.dll文件的完整路径。
3.进程参数直接使用默认即可。其中图中8089指本地用于接收微信实时消息的http server端口。8055指的是dll开启的http server端口,发送消息时只需往这个端口post数据即可。

点击注入并启动,登录微信即可。

3、实时收发消息

实时收发消息官方文档:https://www.apifox.cn/apidoc/project-1222856/doc-1012539

接收微信消息

对于实时接收消息,简单来说,就是在本地创建一个http server,端口与进程参数一致,即默认地址为:http://localhost:8089/wechat/。我们通过使用flask库创建http server

from flask import Flask, request
import json
import requests
app = Flask(__name__)
 
def on_rcv_chatroom_msg(from_wxid, msg):
    print("收到群消息")

def on_rcv_p2p_txt(from_wxid, msg_txt):
    print("收到文本消息", from_wxid, msg_txt)


@app.route('/wechat/', methods=['get', 'post'])
def wechat():
    data = request.stream.read()
    data = data.decode('utf-8')
    data = json.loads(data)
    type = data['type']
    if type == 'D0003':
        data = data['data']
        msg = data['msg']
        from_wxid = data['fromWxid']
        if "@chatroom" in from_wxid:
            on_rcv_chatroom_msg(from_wxid, msg)
        else:
            on_rcv_p2p_txt(from_wxid, msg)
    return ''

if __name__ == '__main__':
    app.run(debug=True, port=8089)

发送微信消息

对于发送消息来说,往指定的端口(默认8055)post消息即可:

import json
import requests 
def send_msg(wxid, is_img, msg):
    if is_img:
        payload = "type": "Q0010", "data": "wxid": wxid, "path": msg
    else:
        payload = "type": "Q0001", "data": "wxid": wxid, "msg": msg

    headers = 
        'User-Agent': 'apifox/1.0.0 (https://www.apifox.cn)',
        'Content-Type': 'application/json'
    
    # 请求url
    url = 'http://127.0.0.1:8055/DaenWxHook/client/'
    # 请求参数

    # 调用post
    response = requests.post(url, json=payload,
                             headers=headers)  # response 响应对象
    # 获取响应状态码
    print('状态码:', response.status_code)
    # 获取响应头
    print('响应头信息:', response.headers)
    # 获取响应正文
    print('响应正文:', response.text)

def send_txt_msg(wxid, txt):
    send_msg(wxid, False, txt)

def send_img_msg(wxid, img_path):
    send_msg(wxid, True, img_path)

如上,分别实现了发送文本消息与图片消息函数。

自动聊天机器人

聊天机器人我们同样站在巨人肩膀上,使用青云客提供的api,实现自动对话。需要注意的是,青云客的机器人是女性,且名称为菲菲,如果想自定义名称,我们直接将回复的文本中的菲菲替换成自定义的名称即可,实现代码如下:

def talk_with_robot(msg, robot_name=None):
    url = 'http://api.qingyunke.com/api.php?key=free&appid=0&msg='.format(urllib.parse.quote(msg))
    html = requests.get(url)
    rt = html.json()["content"]
    rt = rt.replace("br","\\n")
    if robot_name is not None:
        rt = rt.replace("菲菲", robot_name)
    return rt

完整源码及素材点击下方微信名片获取哟~

给大家推荐一套2022最新的爬虫教程,涵盖大部分常见案例,非常实用!

代码总是学完就忘记?100个爬虫实战项目!让你沉迷学习丨学以致用丨下一个Python大神就是你!

python基于pc版微信实现机器人(代码片段)

在github中有基于web版的微信实现的实时收发消息api,python调用起来非常简单。但是目前来说,大部分的用户没法登录web版的微信,因此也就没法使用。今天我们介绍基于windows版的微信,实现实时收发信息。本文站... 查看详情

python基于pc版微信实现机器人(代码片段)

在github中有基于web版的微信实现的实时收发消息api,python调用起来非常简单。但是目前来说,大部分的用户没法登录web版的微信,因此也就没法使用。今天我们介绍基于windows版的微信,实现实时收发信息。本文站... 查看详情

python基于pc版微信实现机器人(代码片段)

在github中有基于web版的微信实现的实时收发消息api,python调用起来非常简单。但是目前来说,大部分的用户没法登录web版的微信,因此也就没法使用。今天我们介绍基于windows版的微信,实现实时收发信息。本文站... 查看详情

python基于pc版微信实现机器人(代码片段)

在github中有基于web版的微信实现的实时收发消息api,python调用起来非常简单。但是目前来说,大部分的用户没法登录web版的微信,因此也就没法使用。今天我们介绍基于windows版的微信,实现实时收发信息。本文站... 查看详情

基于python以及aiuiwebsocket,wechatpyapi实现的微信聊天机器人(代码片段)

基于python以及AIUIWebSocket,WeChatPYAPI实现的微信聊天机器人做此文的目的首先是学习Markdown的用法哈哈哈哈,其实也是记录自己学习的一个过程。以后我也会将自己在图像处理,计算机视觉的所学以及实践实战的process上... 查看详情

用python写一个微信聊天机器人

#-*-coding:utf-8-*-"""package.module~~~~~~~~~~~~~~一个微信机器人程序微信客户端itchat:http://itchat.readthedocs.io/机器人聚合API:##params-info发给机器人的信息-dtypejson|xml-loc地点-userid1-32位,可以用于上下文关联http://op.juhe.cn/robot/inde 查看详情

python使用图灵机器人实现微信聊天功能(代码片段)

  首先需要去图灵官网创建一个属于自己的机器人然后得到apikey。一、自动与指定好友聊天#-*-coding:utf-8-*-"""Createdat2019-3-2611:50:49"""fromwxpyimportBot,Tuling,embed,ensure_onebot=Bot()my_friend=ensure_one(bot.search(‘张三‘))#想和机器人聊天的好... 查看详情

python自动化高效办公第二期,带你项目实战{数据可视化发送邮件(定时任务监控)python聊天机器人(基于微信钉钉)}(代码片段)

 相关文章和数据源:python自动化高效办公第二期,带你项目实战【一】{excel数据处理、批量化生成word模板、pdf和ppt等自动化操作}Python自动化办公--Pandas玩转Excel【一】Python自动化办公--Pandas玩转Excel数据分析【... 查看详情

python自动化高效办公第二期,带你项目实战{数据可视化发送邮件(定时任务监控)python聊天机器人(基于微信钉钉)}(代码片段)

 相关文章和数据源:python自动化高效办公第二期,带你项目实战【一】{excel数据处理、批量化生成word模板、pdf和ppt等自动化操作}Python自动化办公--Pandas玩转Excel【一】Python自动化办公--Pandas玩转Excel数据分析【... 查看详情

python黑科技:python大佬用20行代码带你打造一个微信聊天机器人,真神了~(代码片段)

如何用20行Python代码打造一个微信群聊助手?1.安装python环境2.安装python的itchat库3.安装itchat库4.Linux5.申请图灵机器人API和key6.编写python程序7.执行程序运行8.大致原理简介今天要教大家一个黑科技,20行代码实现自己定制的... 查看详情

题目:用python3实现微信聊天机器人(代码片段)

...天机器人,实现步骤:获取微信的使用权,即python脚本能控制微信收发信息。python脚本收到聊天信息后,要对该信息进行处理,返回机器人的回应信息。一二两步要用到wxpy库里的各种组件来收发信息,监... 查看详情

用python配合微信api接口将微信个人号变为聊天机器人(代码片段)

...itchat:这里我之前安装过了,先在又安装了一边使用 python3-c"importitchat"检查是否安装成功了如果没有任何输出,则表明安装成功了然后我们需要去图灵注册一个账号,来获取key,这里给出链接图灵现在开始编辑代码新建一个... 查看详情

是否可以为基于谷歌应用引擎的聊天机器人设置头像?

...ppengine?【发布时间】:2012-03-2306:24:27【问题描述】:使用python和谷歌应用引擎构建聊天机器人真的很容易。但是没有头像的机器人很难识别。有一个用于交换用户头像的XMPP协议:XEP-0084:用户头像。http://xmpp.org/exte 查看详情

python快速搭建自动回复微信公众号(代码片段)

Python快速搭建自动回复微信公众号在之前的一篇文章Python利用AIML和Tornado搭建聊天机器人微信订阅号中用aiml实现了一个简单的英文聊天机器人订阅号。但是只能处理英文消息,现在用图灵机器人来实现一个中文的聊天机器人... 查看详情

python黑科技:python大佬用20行代码带你打造一个微信聊天机器人,真神了~(代码片段)

如何用20行Python代码打造一个微信群聊助手?1.安装python环境2.安装python的itchat库3.安装itchat库4.Linux5.申请图灵机器人API和key6.编写python程序7.执行程序运行8.大致原理简介今天要教大家一个黑科技,20行代码实现自己定制的... 查看详情

个人微信接入图灵机器人(基于python)

开发环境:Ubuntu14.04编程语言:Python2.71.在图灵机器人官网(http://www.tuling123.com)注册账号,创建机器人,如果只是学习的话,可以使用免费版,一个账号最多可以创建5个机器人,一个机器人日调用接口数... 查看详情

基于windows微信实现实时收发微信消息app(代码片段)

...cn/apidoc/project-1222856/doc-1012539。需要注意的是,此工具基于3.6.0.18版本微信。下载此版本微信后直接覆盖安装,这样可以保留之前的微信聊天记录。2.2如何使用微信消息劫持工具?首先前往官网下载好压 查看详情

开源一个基于智能问答的聊天机器人实现

   智能问答应当是未来智能化发展中人机交互的主要方式,目前无论是在开源社区或者企业应用中,都有广泛的应用。   项目名称是Iveely.Brain,本次源码可以在Github的这里下载,,是主要用于聊天服务的一... 查看详情