ItCha t的入门使用相对简单。首先,你需要通过 pip 命令安装 ItChat 库。安装完成后,你可以通过引入 ItChat 模块,并调用其提供的函数来实现所需的功能。例如,你可以使用 ItChat 的 login() 函数来扫码登录微信,然后使用 get_friends() 函数来获取好友列表和详细信息。此外 ItChat 还提供了发送消息、注册消息回复等功能,使开发者能够根据自己的需求定制微信机器人的行为。
ItChat 不仅是一个功能强大的工具,也是一个开源项目,这意味着开发者可以根据自己的需求对其进行扩展和定制。通过 ItChat,你可以开发出各种有趣的微信应用,如自动回复消息、数据采集、搭建微信聊天机器人等。
使用 pip 进行安装下载 itchat 库
清华大学开源软件镜像站
使用如下命令配置 pip 使用清华大学的镜像源:
运行测试结果
异常解决方案:更新 itchat 库
点击 立即下载 下载新的 itchat 库 zip 压缩包
重新运行测试
特别注意:使用itchat或其他类似工具进行微信操作需要遵守微信的使用协议和相关法律法规,不得用于非法或恶意目的。同时,由于微信的协议和接口可能随时变化,使用 itchat 等第三方工具时需要注意及时更新和适配。
现在注册的微信已经禁止网页版登陆了,itchat 是基于 web 协议,如果你的微信是 2017 年之后的,或者未进行实名认证的微信号,可能会遇到登录失败的报错。请选择合理的微信号进行登录。
运行结果:
自动回复文本消息
函数说明:
开启一个消息注册器监听来自用户私信的文本类型消息,自动回复用户私信发送消息的内容(文本消息)
测试结果
TEXT 这是一个常量,代表文本消息类型。当itchat收到一个文本消息时,它会检查是否有为这个类型注册的处理函数。
运行结果:
通过以下命令可以在登陆的时候使用命令行显示二维码:
默认控制台背景色是暗色(黑色)。若背景色是浅色(白色)将 enableCmdQR 赋值为负值:
itchat 库提供了 get_QR 函数用于下载显示二维码。
如果未设置 uuid 则将使用您获取的最新 uuid:
状态码说明
pickle 数据格式说明
pkl 是 Python 编程语言中的一种数据序列化文件格式,其全称是 pickle。这种格式可以将 Python 中的任意对象转换为一种可以保存到磁盘上或通过网络传输的格式,然后再将这些对象从磁盘上读取出来或者从网络上接收过来,重新还原为原来的 Python 对象。这种能力使得 pkl 格式文件在 Python 编程中非常有用,尤其是在需要保存和加载复杂数据结构或自定义对象时。
具体来说 pkl 文件是以二进制格式保存的,它包含了对象的状态信息,包括对象的数据和方法。这种存储方式可以将Python项目过程中用到的一些暂时变量、或者需要提取、暂存的字符串、列表、字典等数据保存起来,然后在需要使用的时候再进行加载。
在 Python 中 pickle 模块提供了 dump() 和 load() 函数,用于将 Python 对象保存到 pkl 文件和从 pkl 文件加载对象到内存中。使用这些函数,可以方便地实现 Python 对象的序列化和反序列化,从而实现数据的持久化存储和传输。
需要注意的是,由于pkl文件是以二进制格式保存的,因此在不同的操作系统或Python版本之间可能会出现兼容性问题。此外,在处理来自不可信来源的pkl文件时也需要格外小心,因为加载恶意构造的pkl文件可能会导致安全问题。
存储登陆数据
加载登陆数据
get_friends 函数
读取实时数据:读取当前登陆态数据
使用 search_friends 方法可以搜索用户
函数体说明
案例说明
获取自己的用户信息,返回自己的属性字典
获取特定 UserName 的用户信息
获取任何一项等于 name 键值的用户
获取分别对应相应键值的用户
组合查询
wechatAccount 安全性特别说明
查询指定 userName 用户信息
查询昵称 '番茄土豆’ 用户信息(相较于 userName 来说 nickName 更方便使用)
数据格式说明
查询昵称:番茄土豆的联系人设置置顶操作
baseResponse 属性
上传图片资源类型案例
baseResponse
上传视频资源类型案例
send_image 函数:发送指定用户指定图片类型
函数说明:
运行结果
文件错误 baseResponse 常见报错
{'BaseResponse’: {'ErrMsg’: '文件位置错误’, 'Ret’: -1002, 'RawMsg’: 'No file found in specific dir’}}
配置 MediaId 进行发送图片(案例实验)
实验结果:
实验数据表明:第一次的时间是 0.90 秒,第二次的时间是 0.33 秒,第三次的时间是 0.81 秒。说明提前把图片资源数据上传到微信服务器,都要比每次本地读取图片资源上传的时间开销要短。
常见问题
{'BaseResponse’: {'ErrMsg’: '参数错误’, 'Ret’: -1005, 'RawMsg’: 'Either fileDir or file_ should be specific’}} 文件路径 fileDir 和 file_ 必须要指定一个。
开启一个私聊监听语音消息的消息注册器,存储私信的语音数据。
msg 消息体
get_download_fn:<function get_download_fn..download_fn at 0x0000020E7E2B63E0>
存储语音数据
send_file:发送文件函数(指定群 / 用户发送文件)
函数说明:
测试结果
get_chatrooms 函数
读取实时数据:读取当前登陆态数据
通过 get_friends 方法可以轻松获取所有的好友(好友首位是自己)。进行判断群名匹配,从而获取群的 UserName 属性进行发送指定群消息。