返回
数据抓取 —— 微信好友篇
后端
2023-10-12 03:28:55
大家下午好!
由于最近实在太闲了,就想到了一个好玩的事情,用程序爬取一下微信好友,然后理智的分析一波。数据采集
首先,为了获取微信好友数据,我们这次使用的是 Itchat 库。这个库非常强大,可以轻松地让我们获取到微信好友数据。
登录
首先需要登录,这里我们使用扫码的方式进行。在终端中执行以下代码:
```python
import itchat
itchat.auto_login(hotReload=True)
```
然后我们扫描屏幕上的二维码,就可以登录微信了。
获取好友数据
登录成功后,我们可以使用以下代码获取好友数据:
```python
friends = itchat.get_friends(update=True)
```
变量 friends 是一个字典,每个好友对应一个键值对。键是好友的唯一标识,值是好友的详细信息。我们可以使用以下代码来获取好友的详细信息:
```python
for friend in friends:
print(friend['NickName'])
```
数据可视化
获取到好友数据后,我们可以使用 matplotlib 库来进行数据可视化。
首先,我们需要导入 matplotlib 库:
```python
import matplotlib.pyplot as plt
```
然后,我们可以使用以下代码绘制好友性别饼图:
```python
sex_dict = {}
for friend in friends:
if friend['Sex'] in sex_dict:
sex_dict[friend['Sex']] += 1
else:
sex_dict[friend['Sex']] = 1
plt.pie(sex_dict.values(), labels=sex_dict.keys(), autopct='%1.1f%%')
plt.title('好友性别分布')
plt.show()
```
好友年龄分布直方图
```python
age_list = []
for friend in friends:
if friend['RemarkName'] != '':
age_list.append(int(friend['RemarkName'].split(' ')[0]))
plt.hist(age_list, bins=10, rwidth=0.8)
plt.title('好友年龄分布')
plt.xlabel('年龄')
plt.ylabel('人数')
plt.show()
```
好友省份分布饼图
```python
province_dict = {}
for friend in friends:
if friend['Province'] in province_dict:
province_dict[friend['Province']] += 1
else:
province_dict[friend['Province']] = 1
plt.pie(province_dict.values(), labels=province_dict.keys(), autopct='%1.1f%%')
plt.title('好友省份分布')
plt.show()
```
结语
通过以上分析,我们可以看到微信好友的性别、年龄、省份分布情况。这些数据可以帮助我们更好地了解我们的微信好友,也可以为我们提供一些有趣的 insights。