使用 Python 實(shí)現(xiàn)微信群友統(tǒng)計(jì)器的思路詳解
基于微信可以做很多有意思的練手項(xiàng)目,看了這張速查表你就會(huì)發(fā)現(xiàn),可以做的事情超過(guò)你的想象。

有一次我想要統(tǒng)計(jì)微信群里哪些同學(xué)在北京,但發(fā)現(xiàn)直接問(wèn)是很難得到準(zhǔn)確結(jié)果的……

這時(shí)候不如運(yùn)用 wxpy 這個(gè)庫(kù)抓取所有群友的地區(qū)信息,很快就可以得到想要的結(jié)果,甚至還精確到了區(qū)。

下面來(lái)分享一下這個(gè)微信群友統(tǒng)計(jì)器的實(shí)現(xiàn)思路,你可以基于它去拓展更多實(shí)用功能。
實(shí)現(xiàn)思路
解決復(fù)雜問(wèn)題最好的辦法就是把問(wèn)題簡(jiǎn)單化,拆解成若干個(gè)小問(wèn)題,然后逐個(gè)擊破。問(wèn)題的拆解思路如下:

▍1. 如何通過(guò) wxpy 庫(kù)找到指定微信群?
使用 bot.groups() 方法找出最近聊天的微信群

使用 wxpy 提供的 bot.groups().search('群名')[0] 方法找到指定微信群

▍2. 如何獲取到指定微信群的全部群成員?
對(duì)微信群對(duì)象使用 .members 獲得微信群的全部群成員


▍3. 如何獲取到群成員的省份跟城市的信息?
對(duì)獲取到的微信群的全部群成員,使用 for 循環(huán)一個(gè)一個(gè)的用 .province 和 .city 獲取省份跟城市信息


然后進(jìn)行統(tǒng)計(jì),即可獲得各地區(qū)的人數(shù)。
統(tǒng)計(jì)器源碼
只需要修改倒數(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]
#使用此方法用來(lái)更新群聊成員的詳細(xì)信息 (地區(qū)、性別、簽名等)
group.update_group(True)
#獲取該群聊組的全部成員對(duì)象
members = group.members
return members
def clean_members(members):
#用來(lái)存放群聊里出現(xiàn)的全部的省份跟城市的信息
member_clean = []
for member in members:
#.province跟.city分別獲取群成員對(duì)象的省份跟城市
member_info = member.province + member.city
#可能有的成員沒(méi)有設(shè)置自己的地區(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)計(jì)某個(gè)省份跟地區(qū)在member_clean列表里面的人數(shù)
if member_clean.count(m):
member_dict[m] = member_clean.count(m)
#把member_clean列表里,向member_dict字典里添加過(guò)的省份地區(qū)刪除掉
member_clean = [value for value in member_clean if value != m]
return member_dict
#改成想要統(tǒng)計(jì)的群聊名字,很久沒(méi)有聊天記錄的群最好先發(fā)條消息
group_n = '實(shí)用主義第三期入門訓(xùn)練營(yíng)'
members = get_members(group_n)
member_clean = clean_members(members)
member_dict = result(member_clean)
print(member_dict)
總結(jié)
以上所述是小編給大家介紹的使用 Python 實(shí)現(xiàn)微信群友統(tǒng)計(jì)器的思路詳解,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
python 正則表達(dá)式如何實(shí)現(xiàn)重疊匹配
這篇文章主要介紹了python 正則表達(dá)式如何實(shí)現(xiàn)重疊匹配,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07
python簡(jiǎn)單實(shí)現(xiàn)刷新智聯(lián)簡(jiǎn)歷
本文給大家分享的是個(gè)人弄的一個(gè)使用Python簡(jiǎn)單實(shí)現(xiàn)刷新智聯(lián)招聘簡(jiǎn)歷的小工具的代碼,非常的簡(jiǎn)單,給大家參考下吧。2016-03-03
Python導(dǎo)入模塊的3種方式超級(jí)詳細(xì)講解
這篇文章主要給大家介紹了關(guān)于Python導(dǎo)入模塊的3種方式,本文介紹了在Python中使用模塊的概念和不同的導(dǎo)入方式,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-12-12
Python爬蟲(chóng)實(shí)現(xiàn)抓取電影網(wǎng)站信息并入庫(kù)
本文主要介紹了利用Python爬蟲(chóng)實(shí)現(xiàn)抓取電影網(wǎng)站信息的功能,并將抓取到的信息入庫(kù)。文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起了解一下2022-02-02
在Python程序中操作文件之isatty()方法的使用教程
這篇文章主要介紹了在Python程序中操作文件之isatty()方法的使用教程,是Python入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-05-05
Python封裝的類型與作用域的優(yōu)勢(shì)實(shí)例深究
封裝是面向?qū)ο缶幊讨械暮诵母拍?它能夠幫助程序員隱藏類的內(nèi)部細(xì)節(jié),并限制對(duì)類成員的直接訪問(wèn),本文將深入探討Python中封裝的機(jī)制,介紹封裝的類型和優(yōu)勢(shì),并提供詳細(xì)的示例展示如何在Python中實(shí)現(xiàn)封裝2023-12-12
Django中日期處理注意事項(xiàng)與自定義時(shí)間格式轉(zhuǎn)換詳解
這篇文章主要給大家介紹了關(guān)于Django中日期處理注意事項(xiàng)與自定義時(shí)間格式轉(zhuǎn)換的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-08-08

