itchat

# coding:utf-8

import itchat
name = 'xxxx群'

def getroom_message():
    '''获取群的username,对群成员进行分析需要用到'''
    itchat.dump_login_status() # 显示所有的群聊信息,默认是返回保存到通讯录中的群聊
    RoomList =  itchat.search_chatrooms(name=name)
    if RoomList is None:
            print("%s group is not found!" % (name))
    else:
        return RoomList[0]['UserName']

    '''返回所有的群组信息'''
    # RoomList = itchat.get_chatrooms(update=True)[0:]
    # for k in RoomList:        # 获取群名称以及它的username,此方法将会获取到所有的群原因是微信可能不会
    #     print(k['NickName'], k['UserName'])


def AnalyseChatFemale():
    '''对目标群进行女性的分析,update_chatroom()方法中第一个参数就是getroot_message()中获取到的UserName'''
    global total
    ChatRoom = itchat.update_chatroom(getroom_message(), detailedMember=True)
    total = len(ChatRoom['MemberList'])
    female = 0
    print("女生名单及个性签名:")
    for i in range(total):
        if ChatRoom['MemberList'][i]['Sex'] == 2:
            female += 1
            print(ChatRoom['MemberList'][i]['DisplayName'], ChatRoom['MemberList'][i]["NickName"], ChatRoom['MemberList'][i]['Signature'], sep='******')
    print("女生共有%s人" % (female))


def AnalyseChatMale():
    '''对目标群进行男性的分析'''
    global total
    ChatRoom = itchat.update_chatroom(getroom_message(), detailedMember=True)
    total = len(ChatRoom['MemberList'])
    male = 0
    print("男生名单及个性签名:")
    for i in range(total):
        if ChatRoom['MemberList'][i]['Sex'] == 1:
            male += 1
            print(ChatRoom['MemberList'][i]['DisplayName'], ChatRoom['MemberList'][i]["NickName"], ChatRoom['MemberList'][i]['Signature'], sep='*****')

    print("男生共有%s人" % (male))


def CheckSex():
       '''检测没有备注性别的用户'''
    ChatRoom = itchat.update_chatroom(getroom_message(), detailedMember=True)
    total = len(ChatRoom['MemberList'])
    for i in range(total):
        if ChatRoom['MemberList'][i]['Sex'] != 1 and ChatRoom['MemberList'][i]['Sex'] != 2:
            print("这位朋友性别不详:",ChatRoom['MemberList'][i]['DisplayName'], ChatRoom['MemberList'][i]["NickName"], ChatRoom['MemberList'][i]['Signature'], sep='///')


def AnalyseChat():
    '''对目标群进行分析'''
    AnalyseChatFemale()
    print("---------------------------")
    AnalyseChatMale()
    CheckSex()
    print("%s 中共有%s人" % (name, total))


if __name__ == '__main__':
    itchat.auto_login(hotReload=True)
    getroom_message()   # 当需要更新username的时候执行这个方法,可以将下方分析的方法注释掉
    # AnalyseChat()  # 同理当进行分析的时候可以将获取username的方法注释掉
### Itchat Python库使用指南 Itchat 是一个用于微信消息自动化的第三方 Python 库,支持通过微信网页版实现消息的发送和接收。以下是 Itchat 的主要功能和使用方法。 #### 1. 安装 Itchat 在开始之前,需要确保已经安装了 Itchat 库。可以通过以下命令安装: ```bash pip install itchat ``` #### 2. 登录与退出 Itchat 提供了简单的接口来登录和退出微信。以下是基本用法: ```python import itchat # 自动登录并生成二维码 itchat.auto_login(hotReload=True) # 登出 itchat.logout() ``` 上述代码中,`auto_login` 方法会生成一个二维码,扫描后即可登录微信[^1]。 #### 3. 获取好友列表 Itchat 可以获取当前微信账号的好友列表,返回的是一个包含好友信息的字典列表。 ```python friends = itchat.get_friends(update=True) for friend in friends: print(friend['NickName']) # 打印好友昵称 ``` 这段代码展示了如何获取好友列表,并打印每个好友的昵称[^2]。 #### 4. 发送消息 Itchat 支持向指定用户发送文本消息、图片、文件等。以下是一个发送文本消息的示例: ```python # 向指定用户发送消息 user_name = "朋友昵称" itchat.send_msg(f"你好,{user_name}!", toUserName=user_name) ``` 如果需要发送图片或文件,可以使用 `send_image` 或 `send_file` 方法[^3]。 #### 5. 接收消息 Itchat 提供了装饰器来处理接收到的消息。以下是一个简单的消息监听示例: ```python @itchat.msg_register(itchat.content.TEXT) def text_reply(msg): return f"你发送的消息是:{msg['Text']}" itchat.run() ``` 当接收到文本消息时,会自动回复消息内容[^4]。 #### 6. 群聊管理 Itchat 还支持群聊相关操作,例如获取群聊成员、发送消息到群聊等。 ```python rooms = itchat.get_chatrooms(update=True) for room in rooms: print(room['NickName']) # 打印群聊名称 ``` 此外,还可以向群聊发送消息: ```python room_name = "群聊名称" itchat.send_msg("这是测试消息", toUserName=room_name) ``` --- ### 注意事项 - 使用 Itchat 时需要注意微信的安全策略,频繁调用可能会导致账号被限制。 - 确保遵守微信的相关使用条款,避免滥用自动化工具。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值