Python3 itchat微信获取好友、公众号、群聊的基础信息

一、简介

安装 itchat

pip install itchat 

使用个人微信的过程当中主要有三种账号需要获取,分别为:

  • 好友
  • 公众号
  • 群聊

itchat为这三种账号都提供了整体获取方法与搜索方法。 
而群聊多出获取用户列表方法以及创建群聊、增加、删除用户的方法。 
这里我们分这三种分别介绍如何使用。

二、好友

好友的获取方法为get_friends,将会返回完整的好友列表。

  • 其中每个好友为一个字典
  • 列表的第一项为本人的账号信息
  • 传入update键为True将可以更新好友列表并返回
#登录(只需要扫码一次,第二次运行手机微信会弹出确认框)
itchat.auto_login(hotReload=True)
#登录(每次登录都要扫二维码)
#itchat.login()
#爬取自己好友相关信息, 返回一个json文件
friends = itchat.get_friends(update=True)[0:]
#print(friends)

好友的搜索方法为search_friends,有四种搜索方式:

1. 仅获取自己的用户信息。

2. 获取特定UserName的用户信息。

3. 获取备注、微信号、昵称中的任何一项等于name键值的用户。

4. 获取备注、微信号、昵称分别等于相应键值的用户 。
其中三、四项可以一同使用,下面是示例程序:

# 获取自己的用户信息,返回自己的属性字典
itchat.search_friends()
# 获取特定UserName的用户信息
itchat.search_friends(userName='@abcdefg1234567')
# 获取任何一项等于name键值的用户
itchat.search_friends(name='wxceshi')
# 获取分别对应相应键值的用户
itchat.search_friends(wechatAccount='wceshi')
# 三、四项功能可以一同使用
itchat.search_friends(name='wxceshi', wechatAccount='wcceshi')

三、公众号

公众号的获取方法为get_mps,将会返回完整的公众号列表。

  • 其中每个公众号为一个字典
  • 传入update键为True将可以更新公众号列表并返回
import  itchat
#登录(只需要扫码一次,第二次运行手机微信会弹出确认框)
itchat.auto_login(hotReload=True)
#登录(每次登录都要扫二维码)
#itchat.login() mpsList=itchat.get_mps(update=True)[1:] total=0
for it in mpsList:
print(it['NickName']+':'+it['Signature'])
total=total+1 print('公众号的数目是%d'%total)

公众号的搜索方法为search_mps,有两种搜索方法:

1. 获取特定UserName的公众号。

2. 获取名字中含有特定字符的公众号 。
如果两项都做了特定,将会仅返回特定UserName的公众号,下面是示例程序:

# 获取特定UserName的公众号,返回值为一个字典
itchat.search_mps(userName='@abcdefg1234567')
# 获取名字中含有特定字符的公众号,返回值为一个字典的列表
itchat.search_mps(name='gzh')
# 以下方法相当于仅特定了UserName
itchat.search_mps(userName='@abcdefg1234567', name='gzh')

四、群聊

群聊的获取方法为get_chatrooms,将会返回完整的群聊列表。

其中每个群聊为一个字典

  • 传入update键为True将可以更新群聊列表并返回通讯录中保存的群聊列表
  • 群聊列表为后台自动更新,如果中途意外退出存在极小的概率产生本地群聊消息与后台不同步
  • 为了保证群聊信息在热启动中可以被正确的加载,即使不需要持续在线的程序也需要运行itchat.run()
  • 如果不想要运行上述命令,请在退出程序前调用-itchat.dump_login_status(),更新热拔插需要的信息
import  itchat

#登录(只需要扫码一次,第二次运行手机微信会弹出确认框)
itchat.auto_login(hotReload=True)
#登录(每次登录都要扫二维码)
#itchat.login() #itchat.run()
mpsList=itchat.get_chatrooms(update=True)[1:]
total=0
for it in mpsList:
print(it['NickName'])
total=total+1
print('群聊的数目是%d'%total)
#显示所有的群聊,包括未保存在通讯录中的,如果去掉则只是显示在通讯录中保存的
itchat.dump_login_status() #获取群成员信息,UserName的值是动态的(每登录一次生成新的UserName)
memberList = itchat.update_chatroom('@@d79840106086e26e76f86857c440f403c8bbeedff17bf4851c7bf4901a3bfdeb')
#print(memberList['MemberList'])
#获取群成员昵称和群昵称
mlist = memberList['MemberList']
for it in mlist:
print(it['NickName']+':'+it['DisplayName'])

群聊的搜索方法为search_chatrooms,有两种搜索方法:

1. 获取特定UserName的群聊。

2. 获取名字中含有特定字符的群聊 。
如果两项都做了特定,将会仅返回特定UserName的群聊,下面是示例程序:

# 获取特定UserName的群聊,返回值为一个字典
itchat.search_chatrooms(userName='@abcdefg1234567')
# 获取名字中含有特定字符的群聊,返回值为一个字典的列表
itchat.search_chatrooms(name='LittleCoder')
# 以下方法相当于仅特定了UserName
itchat.search_chatrooms(userName='@abcdefg1234567', name='LittleCoder')

群聊用户列表的获取方法为update_chatroom。

  • 群聊在首次获取中不会获取群聊的用户列表,所以需要调用该命令才能获取群聊的成员
  • 该方法需要传入群聊的UserName,返回特定群聊的用户列表
memberList = itchat.update_chatroom('bcdefg67')

创建群聊、增加、删除群聊用户的方法如下所示:

  • 由于之前通过群聊检测是否被好友拉黑的程序,目前这三个方法都被严格限制了使用频率
  • 删除群聊需要本账号为群管理员,否则会失败
  • 将用户加入群聊有直接加入与发送邀请,通过useInvitation设置
  • 超过40人的群聊无法使用直接加入的加入方式,特别注意
memberList = itchat.get_friends()[1:]
# 创建群聊,topic键值为群聊名
chatroomUserName = itchat.create_chatroom(memberList, 'test chatroom')
# 删除群聊内的用户
itchat.delete_member_from_chatroom(chatroomUserName, memberList[0])
# 增加用户进入群聊
itchat.add_member_into_chatroom(chatroomUserName, memberList[0], useInvitation=False)

Python3 itchat微信获取好友、公众号、群聊的基础信息的更多相关文章

  1. 【python】itchat登录微信获取好友签名并生成词云

    在知乎上看到一篇关于如何使用itchat统计微信好友男女比例并使用plt生成柱状图以及获取微信好友签名并生成词云的文章https://zhuanlan.zhihu.com/p/36361397,感觉挺 ...

  2. 微信开放平台 公众号第三方平台开发 教程四 代公众号调用接口的SDK和demo

    原文:微信开放平台 公众号第三方平台开发 教程四 代公众号调用接口的SDK和demo 教程导航: 微信开放平台 公众号第三方平台开发 教程一 平台介绍 微信开放平台 公众号第三方平台开发 教程二 创建 ...

  3. .NET Core之微信支付之公众号、H5支付篇

    前言 本篇主要记录微信支付中公众号及H5支付全过程. 准备篇 公众号或者服务号(并开通微信支付功能).商户平台中开通JSAPI支付.H5支付. 配置篇 公众号或者服务号中 -------开发----- ...

  4. 微信系列之公众号Token验证

    微信系列之公众号Token验证 pycharm连接线上服务器开发 开发过程笔记 参考资料 python3安装web.py可以选择安装`pip install web.py==0.40.dev0 pyc ...

  5. 一步一步来做WebQQ机器人-(四)(获取好友列表和群列表)

    × 本篇主要是: 获取好友列表,群列表 我会尽量详细一点,尽我所知的分享一些可能大家已经掌握的或者还不清楚的经验 利于大家阅读,文章样式不再复杂化,根据内容取固定色 目前总进度大概65% 全系列预计会 ...

  6. 微信网页授权-公众号支付(获取openid、用户信息等)

    名词解释: openid 用户唯一标识,请注意,在未关注公众号时,用户访问公众号的网页,也会产生一个用户和公众号唯一的OpenID 业务功能描述:实现H5页面可以在微信浏览器里面进行微信支付,所以需要 ...

  7. .net 微信支付(公众号支付)遇到的问题

    啥也不说了搬砖的都知道老板说是什么就是什么 最近我老板让饿哦做一个微信支付的功能  还带微信上面京东众筹活动的那种,我买东西别人出钱的那种 然后用微信支付 我是新手之前也没有做过这个 所以估计着过程中 ...

  8. 【weixin】微信企业号和公众号区别和关系是什么?

    在移动互联网快速发展和智能手机普遍应用的时代环境下,随着微信平台应用不断扩大和微信用户的迅速增加,微信公众号运营也有了很大的发展,企业.机构和个人纷纷迈入微信公众号运营的行列.微信公众号就是在微信公众 ...

  9. 【微信开发】公众号后台设置错误导致的微信redirect_uri参数错误【图】

    在微信开发中,如微信网页授权登录,分享到朋友圈自定义内容,微信h5支付时 可能会遇到微信redirect_uri参数错误的情况. 此时除了检查自己代码正确性外,还要检查一下是否正确地设置了公众号后台的 ...

随机推荐

  1. 高盛为什么认为中国AI领域将超越美国?

    不久前,高盛发布的名为<中国在人工智能领域崛起>的研究报告,报告中,高盛认为中国已经成为AI领域的主要竞争者,中国政府建设“智慧型经济”和“智慧社会”的目标将有可能推动中国未来GDP的增长 ...

  2. bit 32/64

    [asm]64位编译32位汇编需要注意的   汇编语言在32位和64位下有区别    32位的汇编在代码前增加.code32    as可以通过--32指定生成32位汇编 在64位系统下ld链接生成3 ...

  3. 软件工程-wordcount(C语言实现)

    Github项目地址:https://github.com/xiaobaot/wordcount-wc/tree/master WC 项目要求 wc.exe 是一个常见的工具,它能统计文本文件的字符数 ...

  4. 缓存服务,还未创建完缓存时, 需要更改图层名称、服务名称、数据源位置、mxd名称等

    缓存服务,还未创建完缓存时, 需要更改图层名称.服务名称.数据源位置.mxd名称等.已经创建好的缓存还可以再用吗? 测试后可以, 注意:新服务相对旧服务,符号样式没有改变,切片方案没有变化. 测试步骤 ...

  5. 转:数据库范式(1NF 2NF 3NF BCNF)

    数据库的设计范式是数据库设计所需要满足的规范,满足这些规范的数据库是简洁的.结构明晰的,同时,不会发生插入(insert).删除(delete)和更新(update)操作异常.反之则是乱七八糟,不仅给 ...

  6. curl 一个无比有用的网站开发工具

    1.Common Line Url Viewer curl是一种命令行工具,作用是发出网络请求,然后得到和提取数据,显示在"标准输出"(stdout)上面. 2.-i参数可以显示h ...

  7. 关于微信小程序,你想知道的他们都问了

    微信公开课深圳站小程序专场刚刚结束,大家通过"微信公开课+"互动小程序提出了许多问题.我们筛选了后台问得最多的九个问题进行解答,快来看看这里有没有你想要的答案吧! @谢杨:小程序是 ...

  8. A solution for MySQL Assertion failure FIL_NULL

    A solution for MySQL Assertion failure FIL_NULL http://michaelfranzl.com/2014/01/25/solution-mysql-a ...

  9. [运维-安全]CentOS7.0环境下安装kangle和easypanel

    一.康乐简介 主要特点1.免费开源kangle技术团队希望国人拥有一款真正好用.易用.实用的国产web服务器.2.跨平台可在linux.windows.freebsd.openbsd.netbsd.s ...

  10. [py][mx]django自带后台系统使用

    django的manytomany字段和后台搜索过滤功能 后台开发一般要求 后台要求能快速搭建, 主要精力放在前端用户系统开发上. 权限管理 少量样式 快速开发 django自带的后台手动注册模型 创 ...