python-itchat库使用方法小记


本篇博客用于记录最近发现的一个好玩的python库–itchat。官方文档: https://itchat.readthedocs.io/zh/latest/#_15,作者:LittleCoder,tempdban,Chyroc。

一、简介

近期有个朋友因为忘了发一个通知,导致工作出现一些问题,所以我产生一个想法,是否可以通过代码实现定时将信息发送至特定的群聊或者人?于是我找到了这一个基于网页版微信接口的第三方库itchat,它实现了微信基本的微信信息发送功能,如文件发送,文本发送等,也具备了一定的微信操作:加好友,创建群聊等,非常好玩。此博客便用于记录该库的基本运用为后期使用,希望对你们也有所用处。

二、安装方法

熟悉的pip大法,hh: pip3 install itchat

三、基本接口方法

(一)登陆

1.itchat.login()

常用参数作用
enableCmdQRTrue/False(用于显示二维码在命令行窗口),也可以输入整型数值用于设置显示二维码像素的长度
picDir用于输入要将登陆二维码放置的文件夹位置

2.itchat.auto_login():

常用参数作用
enableCmdQRTrue/False(用于显示二维码在命令行窗口),也可以输入整型数值用于设置显示二维码像素的长度
hotReloadhotReload==True,那么就会保留登录的状态,至少在后面的几次登录过程中不会再次扫描二维码
statusStorageDir设置用来储存status的位置
picDir用于输入要将登陆二维码放置的文件夹位置

(二)查找朋友、群聊、公众号

1.itchat.search_friends()

常用参数作用
name用于通过备注或昵称搜寻朋友其他信息
nickName用于通过昵称搜寻朋友其他信息(可以避免一个人的昵称和另一个人的备注相同,较为精确查找)
remarkName用于通过备注搜寻朋友其他信息(同)
userName用于通过userName寻找朋友的昵称,比如在接受信息时可以用到

2.itchat. search_chatrooms()

常用参数作用
name用于通过群名查寻群聊其他信息
userName用于通过userName寻找群名的昵称或其他信息,比如在接受信息时分析可以用到

3.search_mps

常用参数作用
name用于通过名称查寻公众号其他信息
userName用于通过userName寻找群名的昵称或其他信息,比如在接受信息时分析可以用到

(三)发送信息

1.itchat.send()

常用参数作用
msg需要发送的信息(文本、图片、视频、文件等)前缀列表[’@fil@’, ‘@img@’, ‘@msg@’, ‘@vid@’],例如发送图片:itchat.send(r’@img@C:\Users\user\Desktop\608431415239ef9e7bbfeb7a90f751bf.jpg’,[UserName])
toUserName使用如上面例子,获取例子: itchat.search_friends(name=‘name’)[0].get(‘UserName’)

2.itchat.send_image()

常用参数作用
fileDir图片的地址
toUserName发送的目标对象

3.itchat.send_video()

常用参数作用
fileDir视频的地址
toUserName发送的目标对象

4.itchat.send_file()

常用参数作用
fileDir文件的地址
toUserName发送的目标对象

PS:发送的文件大小不能超过20MB!

(四)自动回复设置


import itchat
from itchat.content import *
@itchat.msg_register(TEXT)   #这里的TEXT表示如果有人发送文本消息,那么就会调用下面的方法
def reply(msg):
    #这个是向发送者发送消息
    itchat.send_msg('已经收到了文本消息,消息内容为%s'%msg['Text'],toUserName=msg['FromUserName'])
    return "我接收到: %s" % msg["Text"]     #返回的给对方的消息,msg["Text"]表示消息的内容

#运行
if __name__ == '__main__':
	itchat.auto_login()
	itchat.run()#开始自动回复

也可以加入用于判断为是好友之间的消息还是群聊的消息

import itchat
from itchat.content import *
 
@itchat.msg_register(TEXT, isFriendChat=True, isGroupChat=True,isMpChat=True)
#isFriendChat、isGroupChat、isMpChat参数用于判断
def text_reply(msg):
    itchat.send("%s : %s" % (msg.type, msg.text),msg['FromUserName'])

自动通过好友

@itchat.msg_register(FRIENDS)#来自官方文档
def add_friend(msg):
    msg.user.verify()
    msg.user.send('Nice to meet you!')

(五)退出及登陆完成后调用特定方法

可以使得程序在登陆后或者退出后运行某方法

import time

import itchat

def lc():
    print('finish login')
def ec():
    print('exit')

itchat.auto_login(loginCallback=lc, exitCallback=ec)
time.sleep(3)
itchat.logout()

(六)用户多开

import itchat

newInstance = itchat.new_instance()
newInstance.auto_login(hotReload=True, statusStorageDir='newInstance.pkl')

@newInstance.msg_register(TEXT)
def reply(msg):
    return msg.text

newInstance.run()

(七)其他注意事项

中文的文件没有办法上传,这是由于requests的编码问题导致的。若需要支持中文文件传输,将fields.py(py3版本见这里)文件放入requests包的packages/urllib3下即可。

四、思考

通过该库的接口,可以很容易的实现定时发送消息与通过接受其他用户的信息设定定时发送消息这一功能和删除之前的定时发送消息这一功能。不过这需要使用者将这一微信号拉进需要发送通知的通知群。由于定时发送信息最好是24小时挂载,所以我想使用服务器进行配置将是一个不错的想法。

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值