zoukankan      html  css  js  c++  java
  • 第一个微信小项目

    第一个好友分析:

    我们需要用到wxpy这个库,这个库用到时会弹出一个二维码,这个二维码是通过扫码的方式登录微信,以获取信息

    1 #导入模块 
    2 from wxpy import * 
    3  
    4 #初始化机器人,选择缓存模式(扫码)登录 
    5 bot = Bot(cache_path=True) 
    6  
    7 #获取我的所有微信好友信息 
    8 friend_all = bot.friends()

    接下来我们调用这个库的函数做到将好友的信息转化成列表

    1 lis=[]
    2 for a_friend in friend_all:
    3     NickName = a_friend.raw.get('NickName',None)
    4     Sex ={1:"",2:"",0:"其它"}.get(a_friend.raw.get('Sex',None),None)
    5     City = a_friend.raw.get('City',None)
    6     Province = a_friend.raw.get('Province',None)
    7     Signature = a_friend.raw.get('Signature',None)
    8     list_0=[NickName,Sex,City,Province,Signature]
    9     lis.append(list_0)

    将列表转换为excl让我们方便看,我用到了pandas的一个小功能:

    1 def toex(lis):
    2     text=pd.DataFrame(lis,columns=['微信名','性别','城市','省份','个性签名'])
    3     text.to_excel('wx.xlsx',encoding='U0001f31a')
    4     print(1)

    结果如下:

     词云如下:

     1 import pandas as pd
     2 from pyecharts import WordCloud 
     3 df=pd.read_excel('wx.xlsx')
     4 city_list = df['城市'].fillna('city').tolist()
     5 count_city = pd.value_counts(city_list)
     6 name = count_city.index.tolist()
     7 value = count_city.tolist()
     8 wordcloud=WordCloud(width=1300, height=620)
     9 wordcloud.add("", name, value, word_size_range=[20, 100])
    10 wordcloud.show_config()
    11 wordcloud.render(r'wxcity.html')
    12 print(1)

    图如下:

     地图如下:

     1 import pandas as pd
     2 from pyecharts import Map 
     3 df=pd.read_excel('wx.xlsx')
     4 pr_list = df['省份'].fillna('pr').tolist()
     5 count_pr = pd.value_counts(pr_list)
     6 attr =count_pr.index.tolist() 
     7 value = count_pr.tolist()
     8 maap=Map("各省微信好友分布", width=1200, height=600)
     9 maap.add("", attr, value, maptype='china', is_visualmap=True,visual_text_color='#000', is_label_show = True)
    10 maap.show_config()
    11 maap.render(r'wxpr.html')
    12 print(1)

    结果如下:

     微信机器人:

    1 # 导入模块
    2 from wxpy import *
    3 import requests
    4 import json
    5 # 初始化机器人,扫码登陆
    6 bot = Bot()

    首先登陆并初始化机器人,接下来创建图灵机器人,大家要在图灵机器人的官网上获得apikey,下面是连接图灵机器人:

    1 robot = Bot()
    2 def talk_robot(info='你好啊'):   #定义一个默认参数
    3     api_url = 'http://www.tuling123.com/openapi/api'  # 图灵接口url
    4     apikey = 'xxxxxxxxxx'       # 注册图灵生成key 
    5     data = {'key': apikey, 'info': info}                                   
    6     r = requests.post(api_url, data=data).text

    之后我们有做了GUI编程的机器人界面,代码如下:

     1 # -*- coding: utf-8 -*-
     2 """
     3 Created on Sun Jun 14 11:51:24 2020
     4 
     5 @author: 49594
     6 """
     7 
     8 import wx
     9 import urllib.request
    10 import requests
    11 import sys
    12 class login(wx.Frame):  
    13     def __init__(self, parent, id, title):  
    14         wx.Frame.__init__(self, parent, id, title,size=(800,600),style=wx.DEFAULT_FRAME_STYLE ^ (wx.RESIZE_BORDER | wx.MINIMIZE_BOX | wx.MAXIMIZE_BOX))  
    15         self.panel = wx.Panel(self, -1,size=(800,600))  
    16         self.panel.SetBackgroundColour('white') 
    17          
    18         box=wx.BoxSizer(wx.VERTICAL) 
    19         boxsizer1 = wx.BoxSizer(wx.HORIZONTAL)  
    20         boxsizer2 = wx.BoxSizer(wx.HORIZONTAL)  
    21         self.chat=wx.StaticText(self.panel,-1,u'聊天框:')
    22         self.chat_content=wx.TextCtrl(self.panel,-1,size=(735,500),style= wx.TE_READONLY|wx.TE_MULTILINE)
    23         self.yousay=wx.StaticText(self.panel,-1,u'回   复:')
    24         self.yousay_content=wx.TextCtrl(self.panel,-1,size=(650,45),style=wx.TE_PROCESS_ENTER)
    25         self.yousay_submit=wx.Button(self.panel,-1,u'发送')
    26         self.Bind(wx.EVT_BUTTON,self.submit,self.yousay_submit)
    27         self.Bind(wx.EVT_TEXT_ENTER, self.submit, self.yousay_content)
    28          
    29          
    30         boxsizer1.Add(self.chat,proportion=0,flag=wx.TOP,border=250)
    31         boxsizer1.Add(self.chat_content,proportion=0,flag=wx.EXPAND,border=0)
    32          
    33         boxsizer2.Add(self.yousay,proportion=0,flag=wx.TOP,border=10)
    34         boxsizer2.Add(self.yousay_content,proportion=0,flag=wx.EXPAND,border=0)
    35         boxsizer2.Add(self.yousay_submit,proportion=0,flag=wx.EXPAND,border=0)
    36          
    37         box.Add(boxsizer1,proportion=0,flag=wx.TOP|wx.LEFT,border=5)
    38         box.Add(boxsizer2,proportion=0,flag=wx.TOP|wx.LEFT,border=5)
    39         self.chat_content.AppendText(u"提示:你正在和图灵机器人聊天
    ")
    40         self.SetSizer(box)
    41         self.Center()
    42         self.Show(True)
    43      
    44     def submit(self,event):
    45         yousay_content=self.yousay_content.GetValue()
    46         if yousay_content == "bye":
    47             sys.exit()
    48         url="http://www.tuling123.com/openapi/api"
    49         key="1f2e5957940c4c8381211ce4556f799d"
    50         repson=requests.post(url+"?key="+key+"&info="+yousay_content).json()
    51         res=repson.get("text")
    52 
    53        
    54              
    55          
    56         self.chat_content.AppendText(u"你说:%s" % yousay_content)
    57         self.chat_content.AppendText('
    ')
    58         self.chat_content.AppendText(u'机器人:%s' % res)
    59         self.chat_content.AppendText('
    ')
    60         self.yousay_content.Remove(0,self.yousay_content.GetLastPosition())
    61          
    62          
    63 app = wx.App()  
    64 login(None, -1, u'聊天机器人')  
    65 app.MainLoop()

    结果如下:

  • 相关阅读:
    ASP.Net GBK 解码
    windows默认共享的打开和关闭?
    NET导出Excel遇到的80070005错误的解决方法
    JavaScript(一)
    博客开通
    java知识学习05-数据类型、变量、标识符、类型转换
    java知识学习04-注释、关键字、常量
    java知识学习03-第一个程序
    【转】Git 冲突:Your local changes would be overwritten by merge. Commit, stash or revert them to proceed.
    idea如何在Git上将分支代码合并到主分支
  • 原文地址:https://www.cnblogs.com/zzalovelyq/p/13191872.html
Copyright © 2011-2022 走看看