zoukankan      html  css  js  c++  java
  • 利用python实现微信小项目

    一、好友地域词云

    我们的好友都来自五湖四海,我们可以利用python的强大的数据库来实现对好友地域的统计

    工具:wxpy库,wordcloud库,matplotlib库,openpyxl库,pandas库,numpy库。

    1、首先实现对微信的登陆与获取好友数据操作

          代码:

      

    #引入微信登陆接口
    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)

          运行结果:

      此时弹出了二维码,扫码登陆即可自动获取好友数据

    2、将好友数据保存为xlsx文件

         方便worldcloud库进行处理

       代码:

    #把列表转换为 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)

            运行结果:

      

      生成了一个xlsx文件

    3、生成词云

          利用worldcloud库生成一个词云

      代码:

    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

          运行结果:

      

    二、创建微信机器人

    工具:requests模块,itchat模块

    然后我们去茉莉机器人上申请api接口http://www.itpk.cn

     代码:

    #-*- 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()                       //启动聊天机器人

    运行登陆即可

  • 相关阅读:
    CS229 6.4 Neurons Networks Autoencoders and Sparsity
    CS229 6.3 Neurons Networks Gradient Checking
    【Leetcode】【Easy】Min Stack
    【Leetcode】【Easy】Merge Sorted Array
    【Leetcode】【Easy】ZigZag Conversion
    【Leetcode】【Easy】Valid Palindrome
    【Leetcode】【Easy】Reverse Integer
    【Leetcode】【Easy】Palindrome Number
    【Leetcode】【Easy】Length of Last Word
    【Leetcode】【Easy】Remove Nth Node From End of List
  • 原文地址:https://www.cnblogs.com/shinawear/p/10996442.html
Copyright © 2011-2022 走看看