- 标题
Python使用itchat功能分析微信好友性别和位置
- 简介
itchat是一个Python库,可实现微信个人账号的接口,从而实现在Python中控制微信。本文将介绍如何使用itchat实现分析微信好友性别和位置的功能。
- 步骤
3.1 安装itchat
在终端或命令行中执行命令:
pip install itchat
3.2 登录微信
使用itchat库的login()
方法登录微信,代码如下:
import itchat
itchat.auto_login()
3.3 获取微信好友信息
使用itchat库的get_friends()
方法获取好友列表和详细资料,保存在Python字典中。代码示例如下:
friends = itchat.get_friends()
# 输出好友性别和位置信息
for friend in friends:
print("昵称:{}".format(friend['NickName']))
print("性别:{}".format(friend['Sex']))
print("位置:{}".format(friend['Province'] + friend['City']))
3.4 统计好友性别信息
使用Python的collections
模块的Counter
类,可以方便地统计好友的性别。代码示例如下:
from collections import Counter
gender_list = [friend['Sex'] for friend in friends[1:]]
counter = Counter(gender_list)
print("性别比例:{}".format(counter))
3.5 统计好友位置信息
通过pandas
模块对位置信息进行分析。代码示例如下:
import pandas as pd
data = pd.DataFrame(friends)
addresses = data['Province'] + data['City']
counter = addresses.value_counts()
print("地区分布:\n{}".format(counter))
- 示例
4.1 示例1:统计好友性别和地区分布
import itchat
import pandas as pd
import matplotlib.pyplot as plt
from collections import Counter
itchat.auto_login()
friends = itchat.get_friends()
addresses = []
genders = []
for f in friends:
if f['Province'] != '' and f['City'] != '':
address = f['Province'] + '-' + f['City']
addresses.append(address)
genders.append(f['Sex'])
# 统计地区分布和性别
address_counter = Counter(addresses)
gender_counter = Counter(genders)
results = {
"地区分布": address_counter,
"性别分布": gender_counter
}
# 输出统计结果
for name, data in results.items():
print(name)
print("-" * 10)
for k, v in data.items():
print(k, v)
# 可视化地区分布
data = pd.DataFrame(address_counter.most_common(10), columns=['地区', '人数'])
plt.figure(figsize=(10,5))
plt.bar(data['地区'], data['人数'])
plt.xticks(rotation=45)
plt.xlabel('地区')
plt.ylabel('好友数')
plt.title('好友地区分布')
plt.show()
# 可视化性别分布
plt.figure(figsize=(5,5))
plt.pie(gender_counter.values(), labels=gender_counter.keys(), autopct='%1.1f%%')
plt.title('好友性别比例')
plt.show()
4.2 示例2:分析好友所在地区分布
import itchat
import pandas as pd
import matplotlib.pyplot as plt
itchat.auto_login()
friends = itchat.get_friends()
# 获取好友地区分布
data = pd.DataFrame(friends)
addresses = data['Province'] + data['City']
counter = addresses.value_counts()
# 输出地区数量排名前10的列表
print(counter.head(10))
# 可视化地区分布
data = pd.DataFrame(counter.most_common(10), columns=['地区', '人数'])
plt.figure(figsize=(10,5))
plt.bar(data['地区'], data['人数'])
plt.xticks(rotation=45)
plt.xlabel('地区')
plt.ylabel('好友数')
plt.title('好友地区分布')
plt.show()
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python使用itchat 功能分析微信好友性别和位置 - Python技术站