Python微信操控(itchat)

itchat是一个开源的微信个人号接口,使用python调用微信从未如此简单。开源地址https://github.com/littlecodersh/ItChat文档:https://itchat.readthedocs.io/zh/latest/安装:pip3installitchat登入与登出登入并向文件助手发送一句话,登入时会经过扫码操作,类似于电脑微信登入1importitchat2#登...

Python微信操控(itchat)

itchat是一个开源的微信个人号接口,使用python调用微信从未如此简单。

开源地址

https://github.com/littlecodersh/ItChat

文档:

https://itchat.readthedocs.io/zh/latest/

安装:

pip3 install itchat

登入与登出

登入并向文件助手发送一句话,登入时会经过扫码操作,类似于电脑微信登入

1 import itchat2 #登入并保存登入状态,实现第一次运行时扫码,一定时间内再次运行就不用扫码了,手机微信上将显示:网页微信已登入.....3 itchat.auto_login(hotReload=True)4 #发送文本数据到文件助手5 itchat.send("东小东你好123",toUserName="filehelper")

登出:

itchat.logout() 

注册登入登出的回调方法

1 def ldong():2  print('微信登入')3 def edong():4  print('微信登出')5 #登入6 itchat.auto_login(hotReload=True,loginCallback=ldong, exitCallback=edong)

命令行二维码

通过以下命令可以在登陆的时候使用命令行显示二维码:

itchat.auto_login(enableCmdQR=True)

部分系统可能字幅宽度有出入,可以通过将enableCmdQR赋值为特定的倍数进行调整:

#如部分的linux系统,块字符的宽度为一个字符(正常应为两字符),故赋值为2itchat.auto_login(enableCmdQR=2)

默认控制台背景色为暗色(黑色),若背景色为浅色(白色),可以将enableCmdQR赋值为负值:

itchat.auto_login(enableCmdQR=-1)

可接受监听的数据类型

消息分类:

图片或表情(PICTURE)、录制(RECORDING)、附件(ATTACHMENT)、小视频(VIDEO)、文本(TEXT),地图(MAP),名片(CARD),通知(NOTE),分享(SHARING),好友邀请(FRIENDS)、语音(RECORDING)、系统消息(SYSTEM)

获取消息内容:

可以通过print(msg)方法查看消息里的所有数据,然后进行提取

@itchat.msg_register(itchat.content.TEXT)def text_reply(msg): print(msg)

消息捕获

针对朋友的消息捕获

登入时不适用于hotReload=True,因为多次运行会多次注册自动回复,比如在没有登出的情况下运行3次程序,就会出现1次接受3次发送的效果

监听函数只有在对方发送数据时进入

文本

 1 import itchat 2 #自动回复 3 @itchat.msg_register(itchat.content.TEXT) 4 def text_reply(msg): 5  return "东小东回复数据:" msg["Text"] 6  7 #登入 8 itchat.auto_login() 9 #保持运行10 itchat.run()

文件下载

 1 import itchat 2 #PICTURE, RECORDING, ATTACHMENT, VIDEO,TEXT 3 # 图片、录制、附件、视频、文本 4 from itchat.content import PICTURE, RECORDING, ATTACHMENT, VIDEO,TEXT 5  6 @itchat.msg_register([PICTURE, RECORDING, ATTACHMENT, VIDEO]) 7 def download_files(msg): 8  filedpx="./filex/" msg["FileName"] #得到文件路径,目录需要手动创建 9  msg.download(filedpx) #下载10  return "你发送的文件类型" msg['Type'] "  保存地址为:filex/" msg.fileName

针对群聊的自动监测

如果想添加针对群聊的监测,则在监听函数加入isGroupChat=True

监听函数只要有数据发送就会进入,包括自己发送的数据

 1 import itchat 2 #只对群消息有效 3 @itchat.msg_register(itchat.content.TEXT,isGroupChat=True) 4 def text_reply(msg): 5  if(msg["Text"]=="11"): 6return "东小东回复数据xx:" msg["Text"] 7 #只对个人用户有效 8 @itchat.msg_register(itchat.content.TEXT) 9 def text_reply(msg):10  return "东小东回复数据:" msg["Text"]11 #登入12 itchat.auto_login()13 #保持运行14 itchat.run()

@我信息监测

 1 import itchat 2 #只对群消息有效 3 @itchat.msg_register(itchat.content.TEXT,isGroupChat=True) 4 def text_reply(msg): 5#判断是否是@本人 6if msg["Text"].find("@" usermsgx["NickName"])==0: 7 return "@" msg.actualNickName " 东你发的信息为:" msg.text 8  9 itchat.auto_login()#登入10 usermsgx=itchat.search_friends()#得到当前用户的信息11 itchat.run()#保持运行

针对所有信息来源信息监听

朋友、群聊、公众号

@itchat.msg_register(TEXT, isFriendChat=True, isGroupChat=True, isMpChat=True)def simple_reply(msg): return 'I received: %s' % msg.text

数据发送

return

在接收数据函数里的return “数据” 则是自动确认为回复当前发送用户数据,可以删除该句,则不进行数据回复

itchat.send,可以一次性发送多条

参数:(内容,用户)

返回值:发送结果,是否发送成功,json数据

注意:文件地址不可为中文

内容:可为单独的字符串内容,其他有【@类型@地址】,类型有图片(img)、文件(fil)、视频(vid)

用户:省略则发个自己,不稳定,msg['FromUserName']表示指定用户为触发用户

1 res=itchat.send('文本信息的发送......!', toUserName=msg['FromUserName'])2 res=itchat.send('@img@%s' % './filex/zcy.gif', toUserName=msg['FromUserName'])3 res=itchat.send('@fil@%s' % './filex/tt.txt', toUserName=msg['FromUserName'])4 res=itchat.send('@vid@%s' % './filex/videox.mp4', toUserName=msg['FromUserName'])
源文地址:https://www.guoxiongfei.cn/cntech/18395.html
0