itchat入门 您所在的位置:网站首页 itchat真的假的 itchat入门

itchat入门

2023-08-21 14:22| 来源: 网络整理| 查看: 265

itchat初级用法整合 登录保持运行状态退出登录发送消息监听消息接收消息好友信息相关群聊相关 现阶段近几年注册的微信号应该是用不了这个了,以前的应该还可以,我再22年初的时候试了一下我的可以用,有需要的还是可以试试。

登录 itchat.auto_login(hotReload=True,enableCmdQR=True,loginCallback=after_login,exitCallback=after_logout)

使用这个命令可以通过扫描二维码登陆微信,hotReload=True可以省略,不过这样一来每次程序执行时都要扫一次码,有了hotReload=True会生成一个itchat.pkl的文件保存登录状态,可以让后面的几次登录不需要再扫码。

enableCmdQR=True这个参数可以让二维码在命令行显示,可能会由于二维码过大,命令行显示不完整,所以可以把后面的True改为显示的倍数。可省略

loginCallback=函数名,exitCallback=函数名:这两个参数是在微信登录和退出时分别执行其对应的函数。可省略。

保持运行状态 itchat.run()

保持运行状态,不会因为命令执行完毕就结束

退出登录 itchat.logout()

强制性退出微信。

发送消息

send

send("Message", toUserName=“UserName”)

第一个参数可以发送文本消息,图片(img),视频(vid)和文件(fil)。文本消息只要直接编写文字内容在引号中就可以了,其他的要保证格式“@type@%s”%‘path’,具体示例如下

import itchat itchat.auto_login() itchat.send("HelloWorld!") ithcat.send("@fil@%s" % '/tmp/test.text') ithcat.send("@img@%s" % '/tmp/test.png') ithcat.send("@vid@%s" % '/tmp/test.mkv')

第二个参数是用来确定发送的对象,如果省去或者是None就是发送给自己,如果是filehelper就是发送给文件助手。

send_msg

除了上面这种方法,还有另一种方法可以完成同样的效果,下面我们来看一下。

send_msg('Text Message', toUserName=None)

发送文字信息的方法和上面那种几乎没什么差异,不过一开始就确定了发送到信息类型。返回值为True或者False返回值为True或者False.

import itchat itchat.auto_login() itchat.send_msg("helloworld.)

send_file

send_file(“fileDir”, toUserName=None)

fileDir是文件路径, 当文件不存在时, 将打印无此文件的提醒,返回值为True或者False。

import itchat itchat.auto_login() itchat.send_file("/tmp/test.txt")

send_image

send_image(“fileDir”,toUserName=None)

参数同上

import itchat itchat.auto_login()itchat.send_img("/tmp/test.jpg")

send_video

send_video(fileDir,toUserName=None)

参数同上

import itchat itchat.auto_login() itchat.send_video("/tmp/test.mp4") 监听消息

除了主动发送信息外,还可以对信息进行监控,支持对多种类型的信息进行监控。 另外,有多个注册信息监听,后注册的信息优先级高于先注册信息,带参数信息高于不带参数信息。

信息类型解释itchat.content.TEXT文本内容itchat.content.MAP位置文本itchat.content.Card名片itchat.content.Note通知文本itchat.content.Sharing分享名称itchat.content.RECORDING录音itchat.PICTURE图片/表情itchat.content.VOICE录音itchat.content.ATTACHMENT附件itchat.content.VIDEO短视频itchat.content.FRIENDS好友邀请itchat.content.SYSTEM系统信息 接收消息

接收消息的方法一般用来作为一个函数的装饰器,当接收到消息以后执行函数中的命令进行回应。

import itchat @itchat.msg_register(itchat.content.TEXT) def reply_msg(msg): if msg['Content'] == u'你好': itchat.send_msg(msg['User']['NickName'] + "你好啊!", msg['FromUserName']) if __name__ == '__main__': itchat.auto_login() itchat.run() 好友信息相关

search_friends

search_friends()

括号里可以填属性字典相关名称来获取指定好友的详细信息,如:名称(name),微信号(wechatAcount),昵称和微信号的查找可以同时使用。一般直接填写名称或者备注名,会优先查找NickName和RemarkName,可以直接查找到,这也是比较方便的方法

import itchat itchat.auto_login(hotReload=True) users = itchat.search_friends('大哥') print(users) userName=users[0]['UserName'] print(userName) itchat.send_msg('你好啊',toUserName=userName) 群聊相关

监听群聊信息

@itchat.msg_register(itchat.content.TEXT,isGroupChat=True) def reply_msg(msg): print("收到一条群信息:", msg['ActualNickName'], msg['Content'])

利用isGroupChat=True 来判定是否是群消息,ActualNickName是发送者昵称,Content是发送的文本信息内容。另外,群聊除了通过群名搜索外还可以通过username来查找,或者两者搭配使用; 在msg里有一个isAt字段,可用于判断是否被人@了。

查找群

def after_login(): print(itchat.get_chatrooms()) #获得所有群信息 time.sleep(10) chat_rooms = itchat.search_chatrooms(name='群名')#根据群名查找群 if len(chat_rooms) > 0: itchat.send_msg('测试', chat_rooms[0]['UserName'])

公众号相关

大致上和群聊差不多,搜索公众号方法search_mps,监听公众号信息添加isMpChat=True元素

import itchat @itchat.msg_register(itchat.content.TEXT,isMpChat=True) def reply_msg(msg): print("收到一条公众号信息:",msg['User']['NickName'], msg['Content']) def login_after(): mps = itchat.search_mps(name='公众号名') if len(mps) > 0: print(mps) itchat.send_msg('人生苦短',toUserName=mps[0]['UserName']) if __name__ == '__main__': itchat.auto_login(loginCallback=login_after) itchat.run()


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有