使用 Python 實現(xiàn)微信群友統(tǒng)計器的思路詳解
基于微信可以做很多有意思的練手項目,看了這張速查表你就會發(fā)現(xiàn),可以做的事情超過你的想象。
有一次我想要統(tǒng)計微信群里哪些同學在北京,但發(fā)現(xiàn)直接問是很難得到準確結(jié)果的……
這時候不如運用 wxpy 這個庫抓取所有群友的地區(qū)信息,很快就可以得到想要的結(jié)果,甚至還精確到了區(qū)。
下面來分享一下這個微信群友統(tǒng)計器的實現(xiàn)思路,你可以基于它去拓展更多實用功能。
實現(xiàn)思路
解決復雜問題最好的辦法就是把問題簡單化,拆解成若干個小問題,然后逐個擊破。問題的拆解思路如下:
▍1. 如何通過 wxpy 庫找到指定微信群?
使用 bot.groups() 方法找出最近聊天的微信群
使用 wxpy 提供的 bot.groups().search('群名')[0] 方法找到指定微信群
▍2. 如何獲取到指定微信群的全部群成員?
對微信群對象使用 .members 獲得微信群的全部群成員
▍3. 如何獲取到群成員的省份跟城市的信息?
對獲取到的微信群的全部群成員,使用 for 循環(huán)一個一個的用 .province 和 .city 獲取省份跟城市信息
然后進行統(tǒng)計,即可獲得各地區(qū)的人數(shù)。
統(tǒng)計器源碼
只需要修改倒數(shù)第5行,改成你要查詢的微信群,然后就可以使用了。
from wxpy import * bot = Bot() def get_members(group_name): print(bot.groups().search(group_name)[0]) group = bot.groups().search(group_name)[0] #使用此方法用來更新群聊成員的詳細信息 (地區(qū)、性別、簽名等) group.update_group(True) #獲取該群聊組的全部成員對象 members = group.members return members def clean_members(members): #用來存放群聊里出現(xiàn)的全部的省份跟城市的信息 member_clean = [] for member in members: #.province跟.city分別獲取群成員對象的省份跟城市 member_info = member.province + member.city #可能有的成員沒有設置自己的地區(qū)跟城市,獲取到的member_info可能為空 member_info_clean = member_info.replace(' ', '') if not member_info_clean == '': member_clean.append(member_info_clean) return member_clean def result(member_clean): member_dict = {} for m in member_clean: #統(tǒng)計某個省份跟地區(qū)在member_clean列表里面的人數(shù) if member_clean.count(m): member_dict[m] = member_clean.count(m) #把member_clean列表里,向member_dict字典里添加過的省份地區(qū)刪除掉 member_clean = [value for value in member_clean if value != m] return member_dict #改成想要統(tǒng)計的群聊名字,很久沒有聊天記錄的群最好先發(fā)條消息 group_n = '實用主義第三期入門訓練營' members = get_members(group_n) member_clean = clean_members(members) member_dict = result(member_clean) print(member_dict)
總結(jié)
以上所述是小編給大家介紹的使用 Python 實現(xiàn)微信群友統(tǒng)計器的思路詳解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關文章
Python爬蟲實現(xiàn)抓取電影網(wǎng)站信息并入庫
本文主要介紹了利用Python爬蟲實現(xiàn)抓取電影網(wǎng)站信息的功能,并將抓取到的信息入庫。文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起了解一下2022-02-02在Python程序中操作文件之isatty()方法的使用教程
這篇文章主要介紹了在Python程序中操作文件之isatty()方法的使用教程,是Python入門學習中的基礎知識,需要的朋友可以參考下2015-05-05Django中日期處理注意事項與自定義時間格式轉(zhuǎn)換詳解
這篇文章主要給大家介紹了關于Django中日期處理注意事項與自定義時間格式轉(zhuǎn)換的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2018-08-08