Python-微信机器人

Python 微信机器人 使用python构造一个微信聊天机器人 最近在学python的过程中无意间发现一个python库:wxpy,其可以实现让微信自动接收、处理消息并进行回复的一系列功能。感觉挺有意思的,便自行摸索学习,并成功地实现了其功能,故写下此博客作学习分享。 1.安装wxpy wxpy 支持 Python 3.4-3.6,以及 2.7 版本。 从PYPI官方源下载安装: pip inst... 阅读详情

Python-微信机器人

转自:https://www.cnblogs.com/Yang-Sen/p/10874375.html#autoid-0-4-0

wxpy基于itchat,使用了 Web 微信的通讯协议,,通过大量接口优化提升了模块的易用性,并进行丰富的功能扩展。实现了微信登录、收发消息、搜索好友、数据统计等功能。

总而言之,可用来实现各种微信个人号的自动化操作。

https://wxpy.readthedocs.io/zh/latest/index.html

安装:wxpy模块(支持 Python 3.4-3.+ 以及 2.7 版本):pip3 install wxpy

安装 pillow模块:pip3 install pillow

安装 pyecharts模块:pip3 install pyecharts==0.1.9.4

二、微信登录

 

from wxpy import *

bot = Bot()

扫码登录微信,生成bot对象,对微信进行一系列操作

但是上面的代码有一个很明显的缺陷,就是你不管又没有修改你的程序,每次执行都需要重新登录你的微信,但是呢,里面有一个参数可以帮我们解决这个问题,

它可以通过缓存的形式将我们的登录信息保存下来,这个一来就不需要每次都进行扫码登录了。

from wxpy import *

bot = Bot(cache_path=True)

三、微信好友男女比例

from wxpy import *
import webbrowser
from pyecharts import Pie


bot = Bot(cache_path=True)  # 弹出二维码登录微信,生成bot对象

friends = bot.friends()  # 获取所有的微信好友信息

attr = ['男盆友','女盆友','其他']  # 设置男性/女性/未知性别好友名称

value = [0,0,0]  # 初始化对象好友数量

# 遍历所有好友,判断该好友性别
for friend in friends:
    if friend.sex == 1:
        value[0] += 1
    elif friend.sex == 2:
        value[1] += 1
    else:
        value[2] += 1

pie = Pie("Sean的好朋友们")

pie.add("",attr,value,is_label_show=True)

pie.render("friends.html")

webbrowser.open('friends.html')

四、微信好友地区分布

from wxpy import *
from pyecharts import Map
import webbrowser

bot = Bot(cache_path=True)

friends = bot.friends()

area_dic = {}  # 定义一个空字典,用于存放省市以及省市人数
for friend in friends:
    if friend.province not in area_dic:
        area_dic[friend.province] = 1
    else:
        area_dic[friend.province] += 1


attr = area_dic.keys()
value = area_dic.values()

map = Map("Sean的好友地域分布",width=1200,height=600)
map.add("好友地域分布",attr,value,maptype='china',is_visualmap=True)

map.render("area.html")

webbrowser.open("area.html")

 

五、微信聊天机器人

 

 1、常用方法

from wxpy import *

# bot = Bot(cache_path=True)

# 给指定朋友发送消息
# friend = bot.friends().search("tank")[0]
# friend.send("hello,达莎雕")

# 获取所有好友
# my_friend = bot.friends(update=False)
# print("sean的好友数:"+str(len(my_friend)-1))

# 获取所有微信群
# group = bot.groups(update=False)
# print(group)
# print("sean的微信群聊数:"+str(len(group)))

# 获取所有关注的微信公众号
# mp = bot.mps(update=False)
# print("sean关注的微信公众号" + str(len(mp)))

2、给文件传输助手发信息

 这里的file_helper就是微信的文件传输助手,我们给文件传输助手发送一条消息,可以在手机端的文件传输助手中收到括号内的消息

bot.file_helper.send('hello')

3、收发消息@bot.register()

from wxpy import *

bot = Bot(cache_path=True)

friend = bot.friends().search('tank')[0]
friend.send("hello 达莎雕")


@bot.register(friend)
def recv_send_msg(recv_msg):
    print('收到的消息:', recv_msg)
    return '自动回复:{}'.format(recv_msg)

# 进入Python命令行,让程序保持运行
embed()

4、自动给对象回复消息

当你在宿舍打着LOL,各种骚断腿的操作的时候,你对象让你出来陪她逛街、吃饭,你怎么办....

from wxpy import *

bot = Bot(cache_path=True)

girl_friend = bot.friends().search('girl_friend')[0]

@bot.register(friend)
def recv_send_friend(recv_msg):
    print("[接收]" + str(recv_msg))
    if recv_msg.type != 'Text':
        ret = "我想陪你看遍世间美景,然后告诉你,它们都不及你万分之一。"
    elif "这是什么" in str(recv_msg):
        ret = "这是我的微信机器人"
    else:
        ret = "今晚月色真美"
    print('[发送]' + str(ret))
    return ret

embed()

5、定位微信群好友自动回复消息

from wxpy import *

bot = Bot(cache_path=True)

company_group = bot.groups()[3]  # 获取指定群
no = company_group.members  # 获取群内所有成员信息

@bot.register(chats=company_group) #接收从指定群发来的消息,发送者即recv_msg.sender为组
def recv_send_msg(recv_msg):
    print('收到的消息:',recv_msg.text)
    if recv_msg.member == no[0]:
        #这里不用recv_msg.render 因为render是群的名字
        recv_msg.forward(bot.file_helper,prefix='测试发言: ')
        return '你是达莎雕?'
    # elif recv_msg.member ==
    elif recv_msg.member == no[2]:
        return '鬼刀一开看不见'

embed()

6、聊天机器人

第一种方式:

1、指定好友回复

from wxpy import *
import requests
import json


# 调用图灵机器人API,发送消息并且获得机器人的回复
def auto_reply(text):
    url = 'http://openapi.tuling123.com/openapi/api/v2'
    api_key = '51a9bec5710941dda6ef836e164a4585'
    payload = {
        "reqType": 0,
        "perception": {
            "inputText": {
                "text": text
            },
            "inputImage": {
                "url": "imageUrl"
            },
            "selfInfo": {
                "location": {
                    "city": "上海",
                    "province": "上海",
                    "street": "御青路"
                }
            }
        },
        "userInfo": {
            "apiKey": api_key,
            "userId": "123456"
        }
    }
    re = requests.post(url, data=json.dumps(payload))
    result = json.loads(re.content)
    return "[来自sean的智能机器人]:" + result['results'][0]['values']['text']


bot = Bot(cache_path=True)
friend = bot.friends().search('好友名称')[0]

@bot.register(friend)
def forward_msg(msg):
    return auto_reply(msg.text)


embed()

2、指定群回复

import json
import requests
from wxpy import *
bot = Bot(cache_path=False)

group=bot.groups().search('群名字')[0]
print(group)

# 调用图灵机器人API,发送消息并且获得机器人的回复
def auto_reply(text):
    url = 'http://openapi.tuling123.com/openapi/api/v2'
    api_key = '51a9bec5710941dda6ef836e164a4585'
    payload = {
        "reqType": 0,
        "perception": {
            "inputText": {
                "text": text
            },
            "inputImage": {
                "url": "imageUrl"
            },
            "selfInfo": {
                "location": {
                    "city": "上海",
                    "province": "上海",
                    "street": "御青路"
                }
            }
        },
        "userInfo": {
            "apiKey": api_key,
            "userId": "123456"
        }
    }
    re = requests.post(url, data=json.dumps(payload))
    result = json.loads(re.content)
    return "[来自sean的智能机器人]:" + result['results'][0]['values']['text']

@bot.register(chats=group)
def forward_message(msg):
    return auto_reply(msg.text)

embed()

3、所有人自动回复(慎用)

import json
import requests
from wxpy import *

bot = Bot(cache_path=True)

# 调用图灵机器人API,发送消息并且获得机器人的回复
def auto_reply(text):
    url = 'http://openapi.tuling123.com/openapi/api/v2'
    api_key = '51a9bec5710941dda6ef836e164a4585'
    payload = {
        "reqType": 0,
        "perception": {
            "inputText": {
                "text": text
            },
            "inputImage": {
                "url": "imageUrl"
            },
            "selfInfo": {
                "location": {
                    "city": "上海",
                    "province": "上海",
                    "street": "御青路"
                }
            }
        },
        "userInfo": {
            "apiKey": api_key,
            "userId": "123456"
        }
    }
    re = requests.post(url, data=json.dumps(payload))
    result = json.loads(re.content)
    return "[来自sean的智能机器人]:" + result['results'][0]['values']['text']

@bot.register()
def forward_message(msg):
    return auto_reply(msg.text)

embed()

第二种方式:

from wxpy import *

bot = Bot(cache_path=True)

friend = bot.friends().search('魏倩倩Bella')[0]
print(friend)

# wxpy自动集成了图灵机器人的接口,我们只需要调用即可
tuling = Tuling(api_key='a2064e6849a64c16aaf29452842f40f7')

@bot.register(friend)
def forward_msg(msg):
    tuling.do_reply(msg)
embed()

 

搞事开始——Python基于PC版微信实现机器人 闲着没事~就开始用python搞搞事儿~ 阅读详情

相关推荐

用Python写了一个微信聊天机器人

在我们的生活和工作当中,很多时候我们并不能及时地回复消息,尤其是业务比较多的人,客户给我们发消息我们不回又不好,但又没有那么多精力时时回复,这个时候智能机器人就能帮助我们解决很多问题。 像电商类的客服,像大的QQ群/微信群管理员,以及我们打游戏的时候,挂着脚本就行,机器人自动帮你回消息,一时半会儿不会得罪女朋友,哈哈哈! 今天就来教大家一招,16行Python代码实现1个微信聊天智能机器人(图灵),再也不用担心不回消息被客户骂了! 一、效果 我拿我自己的微信(左边)登陆之后,用我助手的微信测试了

paisen110的博客 6363

vue+wesocket+nodejs-websocket实现控制台窗口命令

1.需要的功能: //前端定时5s发送一次的心跳包(也就是为了保证时间太长,不断开连接) { "reqType":"0", "msg":"设备序列号" } //命令输入发送 { "reqType":"1", "msg":"命令内容" } //开启调试(进入窗口后开始连接websocket) { "reqType":"2", "msg":"设备序列号" } //关闭调试 { "reqType":"3", ...

大青虫的博客 342

Python初探之实现机器人聊天+微信自动回复

最近看到公司代码平台上有小伙伴用Python实现了聊天机器人功能,一直很想学Python却没有开始,自己实现一下算做入门吧~接入图灵机器人+接入微信自动回复。一、图灵机器人1. 在图灵机器人官网注册一个账号http://www.turingapi.com/#/platfrom2. 注册登录后点击创建机器人,填写基本信息3. 创建成功,在机器人设置界面找到APp Key...

NNnora的博客 4399

python微信加人_Python微信机器人自动添加好友自动回复

编写bot.py代码from wxpy import *# 本地使用bot = Bot(cache_path=True)# 服务器使用 需要安装 pillow 模块 (pip3 install pillow)bot= Bot(console_qr=True,cache_path=True)tuling = Tuling('你的 API KEY ')# 指定好友my_friend = ensure_...

weixin_39722692的博客 799

ADB命令解锁Android手机屏幕的3种实用方法(附详细步骤)

本文详细介绍了在Android手机屏幕失灵或密码遗忘时,利用ADB命令解锁屏幕的三种实用方法。包括通过ADB模拟输入事件、移除锁屏认证文件(需Root权限)以及结合恢复模式抢救数据。文章提供了详细的操作步骤与风险提示,强调提前开启USB调试的重要性,是Android用户应对紧急锁屏情况的有效技术指南。

weixin_29229055的博客 924

如何在Tagetik系统中抽取处理SAP系统财务数据

如何在Tagetik系统中抽取处理不同核算系统财务数据:以SAP为例,简单讲一下Tagetik对接SAP数据的基本情况

2201_75401663的博客 578

python图灵聊天机器人连接企业微信应用_使用python接入微信聊天机器人

本文实例为大家分享了python接入微信聊天机器人的具体代码,供大家参考,具体内容如下1.安装库wxpy:pip install -U wxpyorpip install -U wxpy -i https://pypi.doubanio.com/simple/2.简单操作上手:from wxpy import *bot = Bot(cache_path=True) #扫码登录验证friends_s...

weixin_39762666的博客 673

贴片二极管SOD封装详解:SOD-123/323/523尺寸焊盘设计要点

表面贴装技术中,二极管封装尺寸直接决定PCB布局与焊接可靠性。SOD封装作为小外形二极管的主流形态,其SOD-123、SOD-323、SOD-523三种规格分别对应不同的功耗与占板面积权衡。理解封装尺寸、焊盘设计计算逻辑和钢网开窗原理,是避免立碑、虚焊等工艺缺陷的关键。在可穿戴设备、电源保护等空间受限场景中,合理选择封装不仅能优化散热路径,还能提升量产良率。本文从焊盘计算、工艺要点到选型策略,全面解析SOD封装的工程实践。

weixin_42520780的博客 313

Python进阶_wxpy学习:聊天对象

目录: 目录: 前言 聊天对象 各类型的继承关系 基础类 实际类 基本聊天对象 公众号 前言 学习完了python的基本概念和相应操作后,就要进入实战阶段了,首先选的和微信端口自动交互的wxpy。 本文操靠wxpy的官方文档:官方文档 机器人对象可以参考前文:机器人对象 聊天对象 通过机器人对象 Bot 的 chats(), friends(),groups(),...

去向前方的博客 3504

常见消息队列:ActiveMQ、RabbitMQ、RocketMQ、Kafka的区别总结

常见消息队列:ActiveMQ、RabbitMQ、RocketMQ、Kafka的区别。

qq_30713721的博客 3471

打开UG会安装报错:initialization internal ERROR 的提示框,提示line 1344 of错误的解决方案

打开UG会安装报错:initialization internal ERROR 的提示框,提示line 1344 of错误的解决方案

Q82556499的博客 3522

python微信聊天机器人

上回逗汁儿的朋友豆苗为了哄女朋友开心,爬了一堆的笑话让我来给处理一下,今天这货又来找我了,真是无事不登三宝殿啊,事情是这样的。 豆苗:逗汁儿啊,上次你的方法很不错,让我节约了很多时间,为了感谢你,请你吃个饭啊。 逗汁儿:算你有良心。 吃饭ing 豆苗:那个,逗汁儿啊,其实还有一事相求啊。 逗汁儿:…… 豆苗:上次那个笑话啊,我感觉每天发太累了,我想让微信自动发。你看能不能…… 逗汁儿...

DataCastle 1461

Palabos User Guide中文解读 | 第五章 | Palabos编程 (跳过了第四章Palabos-Java接口)

作者的话:本人在学习palabos时,发现国内中文资料甚少,恰好网上可以直接搜到palabos user guide这种英文资料,加之时间充裕,便打算开始翻译,翻了一节后发现这可能算侵权,就比较伤脑筋,突然想到自己写中文解读即可,便有了下面的博客。 Palabos User Guide Release 1.0 r1 Copyright © 2019 University of Geneva Jul...

Yulan Fang's notes. 2298

Python创建微信机器人

微信,一个日活10亿的超级app,不仅在国内社交独领风骚,在国外社交也同样占有一席之地,今天我们要将便是如何用Python来生成一个微信机器人,突然想起鲁迅先生曾经说过的一句话: 因为是微信机器人系列的第一篇文章,所以猪哥会特别详细的讲解每一地方,尽量使每一位想学习的同学都能顺顺利利的开始,下面就让我们一起来做些有趣的事吧! 一、项目介绍 1.微信库选择 python关于开发微信的库主要有it...

猪哥 9万+

【数据集】全球陆地表面反照率Albedo

【数据集】全球陆地表面反照率Albedo

WW、forever的博客 1454

OpenClaw实战一|企业微信AI客服数字员工:自动应答+工单创建+数据统计,零代码3天落地

OpenClaw做企业微信AI客服数字员工,真正的价值不是“能自动回复”,而是把“咨询-应答-工单-统计-复盘”全流程闭环。对中小企业来说,不用招专职AI开发、不用买昂贵客服系统,一台服务器、零代码配置,就能拥有媲美大厂的智能客服能力。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 517

使用Python做一个微信机器人

该程序将微信的内部功能提取出来,然后在程序里加载Python,接着将这些功能导出成库函数,就可以在Python里使用这些函数程序启动的时候会执行py_code目录下的main.py,类似于你在命令行使用。现在会以插件的形式加载py脚本,将脚本放到plugins目录下,忽略掉以_开头的脚本,然后加载所有其他的py脚本插件脚本分为两类,以msg开头的py文件会在deal_msg.py【处理消息】里加载,其他脚本在main.py里加载。如果需要收到消息做什么事的话就以msg开头命名,不然就随便命名。

Qwertyuiop2016的博客 2万+

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

python wechat --- 企业微信机器人API

python企业微信机器人API库,支持群机器人相关API调用,包括发送文本消息、图片、markdown、文件、模板消息卡片、模板图片卡片。基于webhook开发,调用简单,文档详细易读...

zly717216的博客 8004

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

python之轻松玩转微信(wechat)机器人

python的环境为python3,搭建环境这里就不说了,之前的文章里有 首先安装一个python的微信库 pip install -U wxpy 下面放出源码: #!/usr/bin/env python3 # coding: utf-8 # @Author : Aiker from wxpy import * # 扫码登陆 bot = B...

weixin_34060299的博客 509

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Python实现微信机器人

微信,一个日活10亿的超级app,不仅在国内社交独领风骚,在国外社交也同样占有一席之地,今天我们要将便是如何用Python来生成一个微信机器人,突然想起鲁迅先生曾经说过的一句话: 因为是微信机器人系列的第一篇文章,所以猪哥会特别详细的讲解每一地方,尽量使每一位想学习的同学都能顺顺利利的开始,下面就让我们一起来做些有趣的事吧! 一、项目介绍 1.微信库选择 python关于开发微信的库主要有i...

南城故梦的专栏 1301

用Python创建微信机器人

文/裸睡的猪哥 图片来源于网络微信,一个日活10亿的超级app,不仅在国内社交独领风骚,在国外社交也同样占有一席之地。今天我们要讲的便是如何用Python来做一个微信聊...

Python中文社区 1290

基于python的微信机器人开发_基于python的微信机器人

使用python开发微信机器人,其基础是微信网页版,测试用的账号需要能够登陆网页版微信,且应特别注意,发送消息的频率不要太高,否则容易被封号。原文:https://wxpy.readthedocs.io/zh/latest/index.html主页内容:微信机器人 / 可能是最优雅的微信个人号 APIwxpy 在 itchat 的基础上,通过大量接口优化提升了模块的易用性,并进行丰富的功能扩展注意...

weixin_39631519的博客 397

python 微信机器人_Python 微信机器人

一、写在前边的话如何做一个自动回复的微信机器人?机器人的功能有,自动加好友,关键字回复,等等,它甚至可以成为你的私人管家,只要你的代码到位。今天,主要讲解下,微信机器人-图灵版。二、准备1.python 环境(这是必备的,建议3.6)2.图灵机器人 key简单说下 key 的获取,注册网址(http://www.tuling123.com/),注册后选择一个机器人类型,比如:image设置好机器人...

weixin_39743511的博客 184
上一篇: Python装饰器
下一篇: 编译原理:短语、直接短语、句柄、素短语
Estrellas_
博客等级 码龄9年 273粉丝 233原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值