基於微信可以做很多有意思的練手專案,看了這張速查表你就會發現,可以做的事情超過你的想象。

群友都是哪裡人?28行程式碼來查清

有一次我想要統計微信群裡哪些同學在北京,但發現直接問是很難得到準確結果的……

群友都是哪裡人?28行程式碼來查清

這時候不如運用 wxpy 這個庫抓取所有群友的地區資訊,很快就可以得到想要的結果,甚至還精確到了區。

群友都是哪裡人?28行程式碼來查清

下面來分享一下這個微信群友統計器的實現思路,你可以基於它去拓展更多實用功能。

實現思路

解決複雜問題最好的辦法就是把問題簡單化,拆解成若干個小問題,然後逐個擊破。問題的拆解思路如下:

群友都是哪裡人?28行程式碼來查清

▍1. 如何透過 wxpy 庫找到指定微信群?

使用 bot。groups() 方法找出最近聊天的微信群

群友都是哪裡人?28行程式碼來查清

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

群友都是哪裡人?28行程式碼來查清

▍2. 如何獲取到指定微信群的全部群成員?

對微信群物件使用 。members 獲得微信群的全部群成員

群友都是哪裡人?28行程式碼來查清

群友都是哪裡人?28行程式碼來查清

▍3. 如何獲取到群成員的省份跟城市的資訊?

對獲取到的微信群的全部群成員,使用 for 迴圈一個一個的用 。province 和 。city 獲取省份跟城市資訊

群友都是哪裡人?28行程式碼來查清

群友都是哪裡人?28行程式碼來查清

然後進行統計,即可獲得各地區的人數。

統計器原始碼

只需要修改倒數第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

#使用此方法用來更新群聊成員的詳細資訊 (地區、性別、簽名等)

group

update_group

True

#獲取該群聊組的全部成員物件

members

=

group

members

return

members

def

clean_members

members

):

#用來存放群聊裡出現的全部的省份跟城市的資訊

member_clean

=

[]

for

member

in

members

#。province跟。city分別獲取群成員物件的省份跟城市

member_info

=

member

province

+

member

city

#可能有的成員沒有設定自己的地區跟城市,獲取到的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

#統計某個省份跟地區在member_clean列表裡面的人數

if

member_clean

count

m

):

member_dict

m

=

member_clean

count

m

#把member_clean列表裡,向member_dict字典裡新增過的省份地區刪除掉

member_clean

=

value

for

value

in

member_clean

if

value

!=

m

return

member_dict

#改成想要統計的群聊名字,很久沒有聊天記錄的群最好先發條訊息

group_n

=

‘實用主義第三期入門訓練營’

members

=

get_members

group_n

member_clean

=

clean_members

members

member_dict

=

result

member_clean

print

member_dict

速查表下載

這張速查表涵蓋了 wxpy 文件中的所有功能,可以對照著方便索引。但是傳到知乎上就特別的糊,甚至一個字都看不清……

獲取速查表的高畫質原圖,請在微信公眾號

麻瓜程式設計

回覆關鍵字

wxpy

群友都是哪裡人?28行程式碼來查清

大量瑣碎重複工作,靠肉眼,拼手工,

能保證又快又好的完成嗎?

是時候用「自動化辦公術」告別重複工作了!