Python itchat.get_chatrooms() 抓取群聊不全的问题
1 rooms = itchat.get_chatrooms() 2 f = codecs.open("3.txt","w","utf-8") 3 for room in rooms: 4 f.write(u"{}==={}\n".format(room["NickName"],room["UserName"])) 5 f.close()
很多地方看到类似上面的示例程序,而且都是说明能抓取到所有的群。
然而,现实是打脸的,使用这段程序之后,发现只能抓取到最近有人说话的5-6个群,大多数是无法抓取到的。
后面又看到“其中每个群聊为一个字典 传入update键为True将可以更新群聊列表并返回”,以为找到了武功秘籍,可是现实再次打脸,还是没啥变化。
到处找文档,某个地方看到一句话"这个方法是抓取本地的通讯录",灵光一闪,是不是和通讯录有关的。
再到"群设置"里面看看,发现了一个神奇的开关"保存到通讯录",这个开关默认是关闭的。打开这个开关,之后重新执行上面的程序,一个很久没有人
说话的群终于被抓取出来了,看起来问题是解决了。
个人强烈怀疑,这个是微信后面增加的一个标识,故意这样设定的,造成前面的代码不能正常工作。