微信机器人

Posted gyy-15768200938

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微信机器人相关的知识,希望对你有一定的参考价值。

用Python对你的微信好友进行数据分析,第一次用类的方法来做,接下来直接上代码

from wxpy import Bot
import openpyxl
from pyecharts import Map
import wordcloud
import matplotlib.pyplot as plt
import jieba
class WeChatRobot:
    def __init__(self,toexcel="",tocity="",tosfditu=""):
        self.bot=Bot()
        self.allfriends_info=self.bot.friends()
        self.allfriends_num=len(self.allfriends_info)
        self.excelwj=toexcel
        self.wcofcitywj=tocity
        self.shengfenwj=tosfditu技术图片
        self.run()
    def getfriends(self):
        self.friendsinfo=[]
        self.infotitle=[nick,beizhu,sex,province,city]
        for afriend in self.allfriends_info:
            nick=afriend.raw.get(self.infotitle[0],None)
            beizhu=afriend.raw.get(self.infotitle[1],None)
            sex=1:"",2:"",0:"其他".get(afriend.raw.get(self.infotitle[2],None),None)
            province=afriend.raw.get(self.infotitle[3],None)
            city=afriend.raw.get(self.infotitle[4],None)
            listmp=[nick,beizhu,sex,province,city]
            self.friendsinfo.append(listmp)
    def bcexcel(self,excelname):
        workbook=openpyxl.Workbook()
        sheet=workbook.active
        sheet.title=weixinhaoyou
        for _ in range(len(self.infotitle)):
            sheet.cell(row=1,column=_+1,value=self.infotitle[_])
        for i in range(self.allfriends_num):
            for j in range(len(self.infotitle)):
                sheet.cell(row=i+2,column=j+1,value=str(self.friendsinfo[i][j]))
        if excelname!="":
            workbook.save(excelname)
            print("chenggong")
    def fenxi(self):
        print(self.allfriends_info.stats_text())
    def cityciyun(self,cityname):
        citystr=""
        for i in range(self.allfriends_num):
            if self.friendsinfo[i][4] not in citystr:
                citystr +=" "+self.friendsinfo[i][4]
                wordlist=jieba.lcut(citystr)
                citystr= .join(wordlist)
                font=simhei.ttf
                wc=WordCloud(
                    background_color="white",
                    width=1300,
                    height=620,
                    max_font_size=200,
                    random_state=200,
                    )
        myword=wc.generate(citystr)
        plt.imshow(myword)
        plt.axis(off)
        plt.show()
        if cityname!="":
            wc.to_file(cityname)
            print("chenggong")
    def scsfdt(self,mapfile):
        sflist=[]
        sfnum=[]
        for i in range(self.allfriends_num):
            if self.friendsinfo[i][3] not in sflist:
                sflist.append(self.friendsinfo[i][3])
                sfnum.append(0)
        for i in range(self.allfriends_num):
            for j in range(lrn(sflist)):
                if self.friendsinfo[i][3]==sflist[j]:
                    sfnum[j]+=1
        map=Map("haoyoufenbu",width=100,heigth=800)
        map.add("",sflist,sfnum,maptype="china",is_vlauemap=True,visual_text_color=#000)
        if mapfile!="":
            map.render(mapfile)
            print("chenggong")def run(self):
        self.getfriends()
        print("get!")
        print("members",self.allfriends_num)
        self.bcexcel(self.excelwj)
        self.fenxi()
        self.cityciyun(self.wcofcitywj)
        self.scsfdt(self.shengfenwj)
        self.sccsdt(self.chengshiwj)
if __name__=="__main__":
    toexcel="D:\\\\python文件\\\\haoyoushuju.xlsx"
    totupian="D:\\\\python文件\\\\citywc.png"
    toshengfen="D:\\\\python文件\\\\sfditu.html"
    robot=WeChatRobot(toexcel,totupian,toshengfen)

运行结果如下:

技术图片技术图片

技术图片

接下来是自动回复机器人的代码

from wxpy import *
import requests
import json
bot=Bot()
robot = Bot()
def talk_robot(info=你好啊):   #定义一个默认参数
    api_url = http://www.tuling123.com/openapi/api  # 图灵接口url
    apikey =      # 图灵密钥 
    data = key: apikey, info: info                                   
    r = requests.post(api_url, data=data).text
    response = json.loads(r)[text]
    return response
#在群里艾特你自动回复
@robot.register()
def reply_my_friend(msg):
    message = .format(msg.text)
    response = talk_robot(info=message)
    return response
embed()

 

以上是关于微信机器人的主要内容,如果未能解决你的问题,请参考以下文章

pbootcms对接微信扫码登录代码核心片段和步骤(前后端)

python 机器学习有用的代码片段

Azure 机器人微软Azure Bot 编辑器系列 : 机器人/用户提问回答模式,机器人从API获取响应并组织答案 (The Bot Framework Composer tutorial(代码片段

你可能不知道的JavaScript代码片段和技巧(下)

你可能不知道的JavaScript代码片段和技巧(上)

微信小程序视图层WXML_模板