zoukankan      html  css  js  c++  java
  • 使用python进行微信好友分析

    1. 使用到的库

    ① wxpy:初始化微信机器人

    ② openpyxl:保存微信好友数据为Excel表格

    ③ pyecharts:生成可视化的地图

    ④ wordcloud、matplotlib、jieba:生成词云图

    2. 基本功能

    ① 分析微信好友数据

    ② 生成词云图

    ③ 生成地图展示

    3.初始化机器人和获取微信好友的源信息

    from wxpy import*
    bot=Bot(cache_path=True)
    friend_all=bot.friends()
    len(friend_all)
    Friends=bot.friends()
    data=Friends.stats_text(total=True,sex=True,top_provinces=30,top_cities=500)
    print(data)

    # coding = utf-8
    #引入微信登陆接口
    from wxpy import *
    #获取登录二维码
    bot = Bot(cache_path = True)
    #获取微信朋友的基本数据
    friend_all = bot.friends()
    #建立一个二维列表,存储基本好友信息
    lis = [['NickName','Sex','City','Province','Signature','HeadImgUrl','HeadImgFlag']]
    #把好有特征数据保存为列表
    for a_friend in friend_all:
        NickName = a_friend.raw.get('NickName', None)
        Sex = {1:"男", 2:"女", 0:"其它"}.get(a_friend.raw.get('Sex', None), None)
        City = a_friend.raw.get('City', None)
        Province = a_friend.raw.get('Province', None)
        Signature = a_friend.raw.get('Signature', None)
        HeadImgUrl = a_friend.raw.get('HeadImgUrl', None)
        HeadImgFlag = a_friend.raw.get('HeadImgFlag', None)
        list_0 = [NickName, Sex, City, Province, Signature, HeadImgUrl, HeadImgFlag]
        lis.append(list_0)
    #把列表转换为 xlsx 表格
    def list_to_xlsx(filename, list):
       
        import openpyxl
        wb = openpyxl.Workbook()
        sheet = wb.active
        sheet.title = 'Friends'
        file_name = filename + '.xlsx'
        for i in range(0, len(list)):
            for j in range(0, len(list[i])):
                sheet.cell(row = i+1, column = j+1, value = str(list[i][j]))
               
        wb.save(file_name)
        print("读写数据成功")
    #把列表生成表格
    list_to_xlsx('wechat_friend', lis)

       
    from wordcloud import WordCloud
    import matplotlib.pyplot as plt
    import pandas as pd
    from pandas import read_excel
    import numpy as np
    df = read_excel('wechat_friend.xlsx')
    #使用 WordCloud 生成词云
    word_list = df['City'].fillna('0').tolist()
    new_text = ' '.join(word_list)
    wordcloud = WordCloud(font_path='msyh.ttc', background_color = 'white').generate(new_text)
    plt.imshow(wordcloud)
    plt.axis("off")
    plt.show()

    #使用 pyecharts 生成词云
    from pyecharts import WordCloud
    city_list = df['City'].fillna('').tolist()
    count_city = pd.value_counts(city_list)
    name = count_city.index.tolist()
    value = count_city.tolist()
    wordcloud = WordCloud(width=1300,height=620)
    wordcloud.add("",name,value,word_size_range=[20,100])
    #wordcloud.show_config()
    #wordcloud.render(r'D:wc.html')
    wordcloud.render('wordcloud.html')

    #将好友展示在地图上
    from pyecharts import Map
    province
    _list = df['Province'].fillna('').tolist()
    count_province = pd.value_counts(province_list)
    attr = count_province.index.tolist()
    value1 = count_province.tolist()
    map = Map("各省微信好友分布", width=1200,height=600)
    map.add("",attr, value1, maptype='china',is_visualmap=True,visualmap_text_color='#000',is_label_show=True)
    #map.show_config()
    map.render('map.html')
     
     
     
  • 相关阅读:
    吴裕雄--天生自然 R语言开发学习:图形初阶
    吴裕雄--天生自然 R语言开发学习:导入数据
    如何基于阿里云搭建适合初创企业的轻量级架构?
    基于协同过滤算法的推荐
    重磅!阿里巴巴工程师获得 containerd 社区席位,与社区共建云时代容器标准
    完爆 Best Fit,看阿里如何优化 Sigma 在线调度策略节约亿级成本
    阿里云物联网边缘计算加载MQTT驱动
    阿里云物联网平台体验(树莓派+Python篇)
    RAM SSO功能重磅发布 —— 满足客户使用企业本地账号登录阿里云
    阿里云高级技术专家带你全面了解云主机性能评测
  • 原文地址:https://www.cnblogs.com/0609hlz/p/10970850.html
Copyright © 2011-2022 走看看