• 第一个微信项目


    一、微信好友分析

    步骤一:

    需要下载wxpy库、openpyxl库和pandas库

     

    步骤二:

    读取微信好友信息,并存为excel文件

    from wxpy import *

    import openpyxl

    import pandas as pd

     

    def shuju():

    bot=Bot(cache_path=True)

    friend_all=bot.friends()

    lis=[]

    for a_friend in friend_all:

    RemarkName=a_friend.raw.get('RemarkName',None)

    UserName=a_friend.raw.get('UserName',None)

    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=[RemarkName,UserName,NickName,Sex,City,Province,Signature,HeadImgUrl,HeadImgFlag]

    lis.append(list_0)

    return lis

     

    def save(u):

    name=["RemarkName","UserName","NickName","Sex","City","Province","Signature","HeadImgUrl","HeadImgFlag"]

    test=pd.DataFrame(columns=name,data=u)

    test.to_excel('D:/pa.xlsx',encoding="gbk")

     

    def main():

    u=shuju()

    save(u)

    main()

    文件部分内容如图:

     

    步骤三:

    统计微信人数、省市分布

    from wxpy import *

    bot=Bot(cache_path=True)

    allfriend=bot.friends()

    data=allfriend.stats_text(total=True,sex=True,top_provinces=30,top_cities=50)

    print(data)

    结果如下

    panq 共有 233 位微信好友

     

    男性: 89 (38.2%)

    女性: 124 (53.2%)

     

    TOP 30 省份

    广东: 137 (58.80%)

    Dubai: 2 (0.86%)

    内蒙古: 2 (0.86%)

    北京: 2 (0.86%)

    山西: 1 (0.43%)

    Arnsberg: 1 (0.43%)

    Kildare: 1 (0.43%)

    四川: 1 (0.43%)

    Miyazaki-ken: 1 (0.43%)

    Concordia: 1 (0.43%)

    安徽: 1 (0.43%)

    Dublin: 1 (0.43%)

    Hamburg: 1 (0.43%)

    Kyoto-fu: 1 (0.43%)

    Kowloon City: 1 (0.43%)

    香港: 1 (0.43%)

    海南: 1 (0.43%)

    Ansbach: 1 (0.43%)

    Dubayy: 1 (0.43%)

    Marseille: 1 (0.43%)

    福建: 1 (0.43%)

    Texas: 1 (0.43%)

    Berlin: 1 (0.43%)

    Lille: 1 (0.43%)

    Nuremberg: 1 (0.43%)

    Victoria: 1 (0.43%)

    Paris: 1 (0.43%)

    Saitama-ken: 1 (0.43%)

    St. Peterburg: 1 (0.43%)

    湖北: 1 (0.43%)

     

    TOP 50 城市

    肇庆: 63 (27.04%)

    广州: 41 (17.60%)

    揭阳: 6 (2.58%)

    汕头: 5 (2.15%)

    佛山: 4 (1.72%)

    深圳: 3 (1.29%)

    惠州: 2 (0.86%)

    中山: 2 (0.86%)

    阳江: 2 (0.86%)

    茂名: 2 (0.86%)

    太原: 1 (0.43%)

    成都: 1 (0.43%)

    东莞: 1 (0.43%)

    Miyazaki-shi: 1 (0.43%)

    汕尾: 1 (0.43%)

    芜湖: 1 (0.43%)

    Kyoto: 1 (0.43%)

    临高: 1 (0.43%)

    梅州: 1 (0.43%)

    韶关: 1 (0.43%)

    厦门: 1 (0.43%)

    Houston: 1 (0.43%)

    珠海: 1 (0.43%)

    呼伦贝尔: 1 (0.43%)

    朝阳: 1 (0.43%)

    Melbourne: 1 (0.43%)

    Kasukabe-shi: 1 (0.43%)

    黄冈: 1 (0.43%)

    河源: 1 (0.43%)

    Perth: 1 (0.43%)

    东城: 1 (0.43%)

    赤峰: 1 (0.43%)

    湛江: 1 (0.43%)

     

    步骤四:

    将好友的地区分布和好友签名特点做成词云

    需要下载wordcloud库、matplotlib库、pandas库

    好友签名词云

    import pandas as pd

    import matplotlib.pyplot as plt

    from pandas import DataFrame

    from pandas import read_excel

    from wordcloud import WordCloud

    df=read_excel('D:/pa.xlsx')

    word_list=df['Signature'].fillna("0").tolist()

    new_text=' '.join(word_list)

    wordcloud=WordCloud(font_path='simhei.ttf',background_color="pink").generate(new_text)

    plt.imshow(wordcloud)

    plt.axis("off")

    plt.show()

    结果如图

     

    地区词云

    代码差不多,只是将Signature改为City

    import pandas as pd

    import matplotlib.pyplot as plt

    from pandas import DataFrame

    from pandas import read_excel

    from wordcloud import WordCloud

    df=read_excel('D:/pa.xlsx')

    word_list=df['City'].fillna("0").tolist()

    new_text=' '.join(word_list)

    wordcloud=WordCloud(font_path='simhei.ttf',background_color="pink").generate(new_text)

    plt.imshow(wordcloud)

    plt.axis("off")

    plt.show()

    结果如图

     

    二、微信机器人

    使用的库:itchat,requests

    代码

    # -*- coding: utf-8 -*-

    """

    Created on Mon Jun 3 19:36:07 2019

     

    @author: history

    """

     

     

    #-*- coding:utf-8 -*-

    import itchat

    import requests

     

    def get_response(msg):

    apiurl = 'http://i.itpk.cn/api.php' # //moli机器人的网址

    data={

    "question": msg, #//获取到聊天的文本信息

    "api_key": "9ddf52cacd0ef429d1c63bf411b9bed6",

    "api_secret": "n4gxkdyckd7p"

    }

     

    r=requests.post(apiurl,data=data) # //构造网络请求

    return r.text

    @itchat.msg_register(itchat.content.TEXT) # //好友消息的处理

    def print_content(msg):

    return get_response(msg['Text'])

    @itchat.msg_register([itchat.content.TEXT], isGroupChat=True) #群消息的处理

    def print_content(msg):

    return get_response(msg['Text'])

    itchat.auto_login(True) #自动登录

    itchat.run() #//启动聊天机器人

    看一下效果吧

     

    哇,真的好好玩啊,哈哈哈哈,真会骂人。。。

  • 相关阅读:
    嵌入式Linux系统移植(二)——交叉编译工具集
    嵌入式linux系统移植(一)
    C语言常用关键语法精华总结
    ARM汇编常用指令
    嵌入式Linux系统移植——uboot常用命令
    VHDL的参数写在一个vhd文件里
    [PAT] 1077 Kuchiguse (20 分)Java
    [PAT] 1073 Scientific Notation (20 分)Java
    [PAT] 1069 The Black Hole of Numbers (20 分)Java
    [PAT] 1065 A+B and C (64bit) (20 分)Java
  • 原文地址:https://www.cnblogs.com/panqiaoyan/p/10978255.html
Copyright © 2020-2023  润新知