返回

数据抓取 —— 微信好友篇

后端

大家下午好!

    由于最近实在太闲了,就想到了一个好玩的事情,用程序爬取一下微信好友,然后理智的分析一波。数据采集

    首先,为了获取微信好友数据,我们这次使用的是 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。