Python微信库:itchat的用法详解

本文详细介绍了Python微信库itchat的使用,包括消息注册、登录流程、动态注册、消息回复、好友与群聊管理等核心功能,适合Python开发者学习微信自动化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本篇文章主要介绍了Python微信库:itchat的用法详解,现在分享给大家,也给大家做个参考。一起过来看看吧
在论坛上看到了用Python登录微信并实现自动签到,才了解到一个新的Python库: itchat

库文档说明链接在这: itchat

我存个档在我网站(主要是我打开很慢),以便以后阅读。

0x01 Start

最简单的回复

通过如下代码,可以完成回复所有文本信息(包括群聊)。

import itchat

from itchat.content import TEXT 

@itchat.msg_register

def simple_reply(msg):

  if msg['Type'] == TEXT:

    return 'I received: %s' % msg['Content']

itchat.auto_login()

itchat.run()

常用消息的配置

itchat支持所有的消息类型与群聊,下面的示例中演示了对于这些消息类型简单的配置。

#coding=utf8

import itchat

from itchat.content import *

 

@itchat.msg_register([TEXT, MAP, CARD, NOTE, SHARING])

def text_reply(msg):

  itchat.send('%s: %s' % (msg['Type'], msg['Text']), msg['FromUserName'])

 

# 以下四类的消息的Text键下存放了用于下载消息内容的方法,传入文件地址即可

@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(FRIENDS)

def add_friend(msg):

  itchat.add_friend(**msg['Text']) # 该操作会自动将新好友的消息录入,不需要重载通讯录

  itchat.send_msg('Nice to meet you!', msg['RecommendInfo']['UserName'])

 

# 在注册时增加isGroupChat=True将判定为群聊回复

@itchat.msg_register(TEXT, isGroupChat = True)

def groupchat_reply(msg):

  if msg['isAt']:

    itchat.send(u'@%s\u2005I received: %s' % (msg['ActualNickName'], msg['Content']), msg['FromUserName'])

 

itchat.auto_login(True)

itchat.run()

当然这里不需要深究为什么这些东西可以这么写,我在这里放出了示例程序只是为了给你一个该sdk相关代码大概样子的概念。

有了大概的模式的了解之后我们就可以进入下一部分的介绍。

0x02 Login

在上一部分中你看到了基本的注册与登陆,而显然登陆使用的是itchat提供了auto_login方法,调用即可完成登录。

一般而言,我们都会在完成消息的注册后登陆。

当然这里需要特别强调的是三点,分别是短时间关闭重连、命令行二维码与自定义登陆内容。 itchat提供了登陆状态暂存,关闭程序后一定时间内不需要扫码即可登录。 为了方便在无图形界面使用itchat,程序内置了命令行二维码的显示。 * 如果你需要就登录状态就一些修改(例如更改提示语、二维码出现后邮件发送等)。

0x01-1 短时间关闭程序后重连

这样即使程序关闭,一定时间内重新开启也可以不用重新扫码。

最简单的用法就是给 auto_login 方法传入值为真的 hotReload 。

该方法会生成一个静态文件 itchat.pkl ,用于存储登陆的状态。

import itchat

from itchat.content import TEXT

 

@itchat.msg_register(TEXT)

def simple_reply(msg):

  print(msg['Text'])

 

itchat.auto_login(hotReload=True)

itchat.run()

itchat.dump_login_status()

通过设置statusStorageDir可以将静态文件指定为其他的值。

这一内置选项其实就相当于使用了以下两个函数的这一段程序:

import itchat

from itchat.content import TEXT

 

if itchat.load_login_status():

  @itchat.msg_register(TEXT)

  def simple_reply(msg):

    print(msg['Text'])

  itchat.run()

  itchat.dump_login_status()

else:

  itchat.auto_login()

  itchat.dump_login_status()

  print('Config stored, so exit.')

其中load_login_status与dump_login_status分别对应读取与导出设置。

通过设置传入的fileDir的值可以设定导入导出的文件。<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值