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将可以更新群聊列表并返回”,以为找到了武功秘籍,可是现实再次打脸,还是没啥变化。

     到处找文档,某个地方看到一句话"这个方法是抓取本地的通讯录",灵光一闪,是不是和通讯录有关的。

     再到"群设置"里面看看,发现了一个神奇的开关"保存到通讯录",这个开关默认是关闭的。打开这个开关,之后重新执行上面的程序,一个很久没有人

说话的群终于被抓取出来了,看起来问题是解决了。

    个人强烈怀疑,这个是微信后面增加的一个标识,故意这样设定的,造成前面的代码不能正常工作。

posted @ 2019-05-23 14:57  xihuineng  阅读(533)  评论(0编辑  收藏  举报