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將可以更新群聊列表並返回”,以為找到了武功秘籍,可是現實再次打臉,還是沒啥變化。
到處找文檔,某個地方看到一句話"這個方法是抓取本地的通訊錄",靈光一閃,是不是和通訊錄有關的。
再到"群設置"里面看看,發現了一個神奇的開關"保存到通訊錄",這個開關默認是關閉的。打開這個開關,之后重新執行上面的程序,一個很久沒有人
說話的群終於被抓取出來了,看起來問題是解決了。
個人強烈懷疑,這個是微信后面增加的一個標識,故意這樣設定的,造成前面的代碼不能正常工作。
