zoukankan      html  css  js  c++  java
  • 微信好友分析及机器人

    一、微信好友分析

    1、统计好友,城市分布,个性签名并保存为excell

    #导入模块
    from wxpy import *
    #初始化机器人,选择缓存模式(扫码)登录
    bot = Bot(cache_path=True)
    #获取我的所有微信好友信息
    friend_all = bot.friends()
    len(friend_all)
    lis=[]
    for a_friend in friend_all:
        NickName = a_friend.raw.get('NickName',None)
        #Sex = a_friend.raw.get('Sex',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)
    def lis2e07(filename,lis):
        import openpyxl
        wb = openpyxl.Workbook()
        sheet = wb.active
        sheet.title = 'list2excel07'
        file_name = filename +'.xlsx'
        for i in range(0, len(lis)):
            for j in range(0, len(lis[i])):
                sheet.cell(row=i+1, column=j+1, value=str(lis[i][j]))
        wb.save(file_name)
        print("写入数据成功!")
    lis2e07('wechat',lis)

    效果如下:

    2、将城市信息做成词云并保存为html

    代码如下:

    import pandas as pd
    from wordcloud import WordCloud 
    import matplotlib.pyplot as plt
    from pyecharts import WordCloud
    from pandas import read_excel
    df=pd.read_excel(r'‪C:Users80939Desktopwechat.xlsx')
    count=df.City.value_counts() #对 dataframe 进行全频率统计,排除了 nan
    city_list=df['City'].fillna('NAN').tolist()
    count_city=pd.value_counts(city_list)#对 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'‪C:Users80939Desktopwc.html')

    效果如下:

    3、将好友显示在地图上并保存为html

    代码如下:

    from pandas import read_excel
    import pandas as pd
    from wordcloud import WordCloud 
    import matplotlib.pyplot as plt
    df=pd.read_excel(r'C:Usersadmin.spyder-py3wechat.xlsx)
    #将这些个好友在全国地图上做分布
    province_list = df['Province'].fillna('NAN').tolist()#将 dataframe 的列转化为 list,其中的 nan 用“NAN”替换
    count_province = pd.value_counts(province_list)#对 list 进行全频率统计
    from pyecharts import Map 
    value =count_province.tolist() 
    attr =count_province.index.tolist()
    map=Map("各省微信好友分布", width=1200, height=600) 
    map.add("", attr, value, maptype='china', is_visualmap=True, 
     visual_text_color='#000',
    is_label_show = True) #显示地图上的省份
    map.show_config() 
    map.render(r'C:Usersadmin.spyder-py3map1.html')

    效果如图:

     二、微信机器人

    代码如下

     


    import itchat,code,unicodedata
    import requests,re
    from urllib.parse import quote,unquote

    def get_reply(data):
    ini = "{'sessionId':'09e2aca4d0a541f88eecc77c03a8b393','robotId':'webbot','userId':'462d49d3742745bb98f7538c42f9f874','body':{'content':'" + data + "'},'type':'txt'}&ts=1529917589648"
    url = "http://i.xiaoi.com/robot/webrobot?&callback=__webrobot_processMsg&data=" + quote(ini)
    cookie = {"cnonce": "808116", "sig": "0c3021aa5552fe597bb55448b40ad2a90d2dead5",
    "XISESSIONID": "hlbnd1oiwar01dfje825gavcn", "nonce": "273765", "hibext_instdsigdip2": "1"}
    r = requests.get(url, cookies=cookie)
    print(r.text)
    pattern = re.compile(r'"fontColor":0,"content":"(.*?)"')
    result = pattern.findall(r.text)
    print(result[1])
    return result[1]

    @itchat.msg_register(itchat.content.TEXT)
    def print_content(msg):
    print(msg['Text'])
    print(msg['FromUserName'])
    datas=get_reply(msg['Text'])[:-4]
    print(datas)
    itchat.send(datas, toUserName=msg['莫雨林'])a

    itchat.auto_login()
    itchat.run()

  • 相关阅读:
    Ajax数据爬取
    数据存储之非关系型数据库存储----MongoDB存储(Python操作)
    数据存储之关系型数据库存储---MySQL存储(Python操作)
    数据存储之文件存储
    使用pyquery
    使用Beautiful Soup
    使用XPath
    正则表达式和python中的re模块
    Android优化之ViewPager的懒加载
    开源框架Slidingmenu的基本使用
  • 原文地址:https://www.cnblogs.com/loverboy88/p/10982713.html
Copyright © 2011-2022 走看看