python使用itchat库实现微信机器人(好友聊天、群聊天)
作者:DT0203 关注 发布时间:2023-07-12 10:38:39
标签:python,itchat,微信,机器人
itchat是一个开源的微信个人号接口,可以使用该库进行微信网页版中的所有操作,比如:所有好友、添加好友、拉好友群聊、微信机器人等等。详细用户请看文档介绍,在这里。
本文主要使用该库完成一个能够处理微信消息的的图灵机器人,包括好友聊天、群聊天。
1、itchat库的安装
pip install itchat
安装完成后运行以下代码,会出现出现一张二维码,扫码登陆之后将会登陆微信网页。
2、登陆
import itchat
# 登陆
itchat.auto_login() # 可设置hotReload = True
# 运行并保持在线状态
itchat.run()
此外,itchat 也提供短时间内断线重连的功能,只需要添加hotReload = True参数,下次登陆时不需要通过扫描二维码,只需要在手机端确认登陆即可。
3、消息的发送
itchat 库可以发送 文本、图片、视频、附件等内容,如向微信文件传输助手发送消息,可这样:
itchat.send('Hello', toUserName='filehelper')
toUserName 为要向发送消息的人的微信号,可以在微信手机端点击查询,也可以使用itchat库中的search_friends函数来进行查找,返回其微信号,详细用法,自行查找官方文档。
4、消息的接收
###################### 完整代码##############################
# 加载库
from itchat.content import *
import requests
import json
import itchat
itchat.auto_login(hotReload = True)
# 调用图灵机器人的api,采用爬虫的原理,根据聊天消息返回回复内容
def tuling(info):
appkey = "e5ccc9c7c8834ec3b08940e290ff1559"
url = "http://www.tuling123.com/openapi/api?key=%s&info=%s"%(appkey,info)
req = requests.get(url)
content = req.text
data = json.loads(content)
answer = data['text']
return answer
# 对于群聊信息,定义获取想要针对某个群进行机器人回复的群ID函数
def group_id(name):
df = itchat.search_chatrooms(name=name)
return df[0]['UserName']
# 注册文本消息,绑定到text_reply处理函数
# text_reply msg_files可以处理好友之间的聊天回复
@itchat.msg_register([TEXT,MAP,CARD,NOTE,SHARING])
def text_reply(msg):
itchat.send('%s' % tuling(msg['Text']),msg['FromUserName'])
@itchat.msg_register([PICTURE, RECORDING, ATTACHMENT, VIDEO])
def download_files(msg):
msg['Text'](msg['FileName'])
return '@%s@%s' % ({'Picture': 'img', 'Video': 'vid'}.get(msg['Type'], 'fil'), msg['FileName'])
# 现在微信加了好多群,并不想对所有的群都进行设置微信机器人,只针对想要设置的群进行微信机器人,可进行如下设置
@itchat.msg_register(TEXT, isGroupChat=True)
def group_text_reply(msg):
# 当然如果只想针对@你的人才回复,可以设置if msg['isAt']:
item = group_id(u'想要设置的群的名称') # 根据自己的需求设置
if msg['ToUserName'] == item:
itchat.send(u'%s' % tuling(msg['Text']), item)
itchat.run()
那么,下面你的好友、微信群可以愉快的跟图灵机器人聊天啦~~~
总结
以上所述是小编给大家介绍的python使用itchat库实现微信机器人(好友聊天、群聊天)网站的支持!
来源:https://www.jianshu.com/p/5d4de51f5375
0
投稿
猜你喜欢
- 1.表格<!doctype html> <html> <head> <meta charset=&
- 清除视图缓存,就是清除D:\phpStudy\WWW\BCCKidV1.0\storage\framework\views\002f30b1
- 【写在前面】前些日子接到这样的需求,我们要对用户访问网站的时间做个统计,但是我想统计到具体的时间点,便于统计不同时间段(上午、下午、傍晚、凌
- 简介Github:https://github.com/spf13/cobraStar:26.5KCobra是一个用Go语言实现的命令行工具
- 很多应用多需要处理文件,而处理文件有一个固定的模式:打开文件,读入一些数据,处理这些数据,打印到屏幕上或写入另一个文件。那么,如果我们想修改
- 如下所示:# 输入数字使其反向输出num = int(input("请输入一个数:"))i = 0num1 = numw
- <?php header(“Content-Type:text/html;charset=utf-8″); if (isset($_G
- Windows操作系统支持Python的Python2版本和Python3版本,下载安装时要根据windows的操作系统来选择对应的Pyth
- 1.前期准备用户models.pyclass User(models.Model): username = mod
- 本文实例为大家分享了js轮播图实现代码,供大家参考,具体内容如下思路:1、首先要有个盛放图片的容器,设置为单幅图片的宽高,且overflow
- 本文实例为大家分享了Python实现简单飞机大战的具体代码,供大家参考,具体内容如下功能玩家飞机可以移动,可以发射 * ,敌机随机产生,自由坠
- 1. MySQL主从同步实现方式MySQL主从同步是基于Bin Log实现的,而Bin Log记录的是原始SQL语句。Bin Log共有三种
- 一. 问题:在写调用谷歌翻译接口的脚本时,老是报错,我使用的的是googletrans这个模块中Translator的translate方法
- 这篇文章主要介绍了mysql数据迁徙方法工具解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以
- 今天研究了下Python中的传值问题,通常在C、C++中有按值传递和按引用传递两种情况,按值传递时会拷贝实参,而按引用传递时只是给形参赋了一
- 先上一张效果图:以前用angularjs操作基本上都是要取到每个列表的id再循环判断是不是当前点击的列表来显示折叠。今天在这个项目 http
- 在scipy.linalg的函数中,往往会提供两种参数,其一是check_finite,当为True时将进行有限检查,另一类是overwri
- 目录简介实现原理源码运行结果简介大家都知道在微信朋友圈或者微博以及QQ动态中,有很多“强迫症患者”发图片都爱发9张,而有些图是一张图片分成的
- 在向表中插入数据的时候,经常遇到这样的情况:1、首先判断数据是否存在;2、如果不存在,则插入;3、如果存在,则更新。 在 SQL
- 背景 在平常的开发中,经常碰到这种更新数据的场景:先判断某一数据在库表中是否存在,存在则update,不存在则insert。 如果使用Hi