Python基于PC版微信实现机器人

news/2024/11/24 19:32:11/

github中有基于web版的微信实现的实时收发消息apipython调用起来非常简单。但是目前来说,大部分的用户没法登录web版的微信,因此也就没法使用。

今天我们介绍基于windows版的微信,实现实时收发信息。本文站在巨人的肩膀上,基于第三方提供的库,实现自动聊天机器人。效果如下:
最终效果

1 微信实时收发消息

1.1 第三方库

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

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

如果找不到对应版本的微信,可以直接到文末获取相关连接。

1.2 开启注入dll

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

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

如果pc-wechat-hook-http-api地址失效,读者可以直接到文末获取相关dll下载资源。

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

点击Daen注入器.exe文件:
Daen注入器.exe

其中:

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

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

1.3 实时收发消息

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

1.3.1 接收微信消息

对于实时接收消息,简单来说,就是在本地创建一个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)

1.3.2 发送微信消息

对于发送消息来说,往指定的端口(默认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'}# 请求urlurl = 'http://127.0.0.1:8055/DaenWxHook/client/'# 请求参数# 调用postresponse = 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)

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

2 自动聊天机器人

聊天机器人我们同样站在巨人肩膀上,使用青云客提供的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

3 资源获取

  1. 3.6.0.18版微信安装包】 关注公众号:Python学习实战,回复:36018
  2. 【Daen注入器相关dll文件】 关注公众号:Python学习实战,回复:daen
  3. 【完整源码获取】关注公众号:Python学习实战,回复:robot

http://www.ppmy.cn/news/629115.html

相关文章

PC端微信登录

1、微信开放平台 网站应用 开通微信登录 取得Appid和秘钥 2、配置回调域名 注意&#xff08;只要域名 不要完整路径&#xff09;&#xff08;查看应用详情中滑到最下面&#xff09; 3、后端代码 <?php namespace YOUR_NAMESSPACE;use YOUR_BASE_CONTROLLER; use think\…

微信PC端有了新功能,快来看看你知不知道

你们知道微信PC端更新了吗&#xff1f;它新增了几个功能&#xff0c;有兴趣了解的朋友就接着往下看吧。 1、文件路径更清晰 微信之前的文件存储路径&#xff0c;都是一串乱码的文件夹&#xff0c;不便于我们查找和管理。 微信更新后&#xff0c;现在接收到的文件路径&#xff…

windows-电脑版微信怎么双开、多开

电脑版微信怎么双开、多开 微信几乎是人人必备的沟通交流工具&#xff0c;而且很多朋友还不止一个微信号。在用电脑登陆微信的时候&#xff0c;怎么样才能实现微信双开甚至多开呢&#xff1f; 工具/原料 电脑 电脑版微信 多个微信号 方法/步骤 1 首先我们要在电脑上安装一…

短视频矩阵-短视频seo源码开发搭建

开发场景&#xff1a;抖音seo&#xff0c;短视频seo&#xff0c;抖音矩阵&#xff0c;短视频矩阵源码开源 一、 短视频矩阵源码需要掌握以下技术&#xff1a; 1. 视频编码技术 短视频矩阵系统利用视频编码技术&#xff0c;将视频文件进行压缩和解压缩&#xff0c;实现了高质…

污水厂3D可视化智慧大屏实现统一数据管理和信息化建设

随着城市化进程的加速和人口的不断增长&#xff0c;污水排放量也随之增加。3D可视化技术的出现&#xff0c;为污水厂的管理和运营带来了新的思路和方法。本文将探讨污水厂3D可视化智慧大屏系统的意义。 首先&#xff0c;污水厂3D可视化智慧大屏系统可以帮助管理人员更好地了解…

QQ被封一天

项目场景&#xff1a; QQ 问题描述 被封一天 原因分析&#xff1a; 提示色情&#xff0c;敏感信息&#xff0c;诈骗等原因造成的。可能匿名谈论了下时政吧&#xff0c;谈论一天以后封的。 解决方案&#xff1a; 只能等一天失效过去&#xff0c;如果不是期限封闭&#xf…

测试你最关心的QQ好友并爬取空间留言

前言 每个人都有幼稚、单纯的过去&#xff0c;而陪伴我们90后最多的非QQ莫属&#xff01;那些年动不动就喜欢给别人留言&#xff0c;给自己留言&#xff0c;然后分手后通通全删&#xff1f;哈哈&#xff0c;别看了&#xff0c;你肯定有这样的经历。楼主也是个多愁善感的人&…

空间?不是QQ空间,我们今天说网站空间

一般的自助建站模式有选择建站系统-域名-空间....等等。 空间是什么意思?我们这里所说的空间&#xff0c;指的是网站空间&#xff0c;即“虚拟主机”的意思。网站空间简单地讲&#xff0c;就是存放网站内容的空间。网站空间也称为虚拟主机空间&#xff0c;通常企业做网站都不会…