美文网首页
什么?python做了一个尬聊机器人,这不得学习一波~

什么?python做了一个尬聊机器人,这不得学习一波~

作者: 颜狗一只 | 来源:发表于2022-08-26 18:47 被阅读0次

前言

嗨喽,大家好呀~这里是爱看美女的茜茜呐

又到了学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,实现自动对话。

需要注意的是:青云客的机器人是女性,且名称为菲菲,如果想自定义名称,我们直接将回复的文本中的菲菲替换成自定义的名称即可

实现代码如下

完整源码、素材加Q裙:261823976获取~
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

尾语 💝

感谢你观看我的文章呐~本次航班到这里就结束啦 🛬

希望本篇文章有对你带来帮助 🎉,有学习到一点知识~

躲起来的星星🍥也在努力发光,你也要努力加油(让我们一起努力叭)。

最后,博主要一下你们的三连呀(点赞、评论、收藏),不要钱的还是可以搞一搞的嘛~

不知道评论啥的,即使扣个6666也是对博主的鼓舞吖 💞 感谢 💐

相关文章

  • 什么?python做了一个尬聊机器人,这不得学习一波~

    前言 嗨喽,大家好呀~这里是爱看美女的茜茜呐 又到了学Python时刻~激不激动,开不开森 ! web版的微信有专...

  • 利用itchat和图灵机器人API打造一个尬聊机器人

    利用itchat和图灵机器人API打造一个尬聊机器人 itchat itchat是一个用python写的,对微信w...

  • 论尬聊

    1.你们认为的尬聊是怎样的? 2.尬聊是什么原因产生的? 3.如何打破尬聊的局面? 4.避免尬聊的最好方法?

  • 不负时光不负卿(11)处处闻尬聊

    第11章处处闻尬聊 尬聊,是尬社交的重要组成部分。人生何处无尬聊,总有那么一个人让你知道‘多么尬的领悟’。 洗完冷...

  • 当我们在尬聊时,我们的大脑究竟在干什么?

    【音源:猫爵士:为什么会尬聊?如何避免尬聊?】 【链接:https://www.ximalaya.com/qing...

  • 尬聊的聊尬聊的尬

    挂完电话,我不禁哑然失笑,觉得我们刚才几分钟的聊天完全是在自由区平行穿梭,完美的诠释了尬聊的最高境界。 朋友说:路...

  • 尬聊不尬聊

    1. 在男性聚集的D论坛上,常看到这种帖子: “我要到一个女生的微信。不知道怎么去聊啊,总是聊几句就没下文了,该怎...

  • 尬聊

    我这么活泼可爱的,能说会道的人,居然在尬聊,对象不是别人就是自己的老公。今天终于知道了什么是尬聊了! 不得不说距离...

  • 尬聊

    比尬聊更可怕的是强行尬聊宛如鲁豫附体心疼对面和自己感觉什么梗都接不上

  • 拒绝尬聊,拒绝尬聊,拒绝尬聊

    明明好友列表中有很多女生,但能聊上几句话的却没有几个。其他的要么就是不太熟悉,要么就是不知道怎样开口。 想和女生聊...

网友评论

      本文标题:什么?python做了一个尬聊机器人,这不得学习一波~

      本文链接:https://www.haomeiwen.com/subject/lrztnrtx.html