精华内容
下载资源
问答
  • 本文使用图灵机器人API编写Html简单构建了一个网页,实现了聊天机器人。 原理:简单地向API地址发送请求,并获取回答信息,从而实现交互。 页面使用Vue框架构建而成,注意其中的API key需要替换成自己的哦,在...

    本文使用图灵机器人API编写Html简单构建了一个网页,实现了聊天机器人。

    原理:简单地向API地址发送请求,并获取回答信息,从而实现交互。

     页面使用Vue框架构建而成,注意其中的API key需要替换成自己的哦,在图灵机器人官网可以免费注册获得的!

    <!DOCTYPE html>
    <html>
      <head>
        <meta charset="utf-8">
        <title></title>
        <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
        <script src="https://cdn.jsdelivr.net/npm/axios@0.12.0/dist/axios.min.js"></script>
        <script src="https://cdn.jsdelivr.net/npm/lodash@4.13.1/lodash.min.js"></script>
      </head>
      <body>
        <div id="app" class="flex">
        <br />
        <br />
        <h1 style="color: burlywood;">{{title}}</h1>
        <br />
        <br />
        <div id="app" class="box">
            <br />
            <br />
            <img :src="katouImage" style="width: 120px">
            <br />
            <br />
            <div class="answer">
                Katou:
                {{answer}}
            </div>
            <br />
            <br />
          <div>
             You:
            <input type="text" v-model="question"/>
          </div>
        </div>
        </div>
        <script type="text/javascript">
          var app = new Vue({
            el:"#app",
            data:{
              katouImage:"katou.jpg",
              question:'',
              answer:'你刚刚,说了什么?',
              title:"Virtual Friend Katou Megumi"
            },
            watch:{
              question(newv)
              {
                var func = _.debounce(this.getResult, 1000);  
                func();
              }
            },
            methods:{        
              getResult()
              {
                console.log("getresult");
                if(this.question.indexOf('?')== -1)
                {
                  this.answer = "请以中文的 '?'结尾,yo!"
                  return
                }
                axios.get('http://www.tuling123.com/openapi/api?key=这里输入自己的key哦&info=' + this.question)
                     .then(res=>{
                     console.log(res);
                     this.answer = res.data.text
                   })
                   .catch(function(err){
                }) 
              }
            }
          })
        </script>
    
    <style>
        .flex {
          display: flex;
          flex-direction: column;
          align-items: center;
        }
        .box {
          display: flex;
          flex-direction: column;
          align-items: center;
          justify-content: space-evenly;
          width: 35rem;
          height: 22rem;
          background: #ffffff;
          border-radius: 14px;
          box-shadow: 0px 5px 10px 0px rgba(0, 0, 0, 0.5);
        }
        .answer{
          display: flex;
          flex-direction: column;
          align-items: center;
          justify-content: space-evenly;
          width: 400px;
          height: 25px;
          background:lightskyblue;
          border-radius: 20px;
          box-shadow: 0px 5px 10px 0px rgba(0, 0, 0, 0.5);
        }
        </style>
      </body>
    </html>
    展开全文
  • 微信自动回复机器人

    千次阅读 2019-07-04 22:04:56
    通过itchat获取微信的相关消息,将微信消息传输到青云客机器人接口,获取机器人的返回消息。将返回消息返回给微信消息的发送人。以此实现将微信个人号变身为聊天机器人。 因为图灵机器人现在需要实名认证,并每天...

    首发于慕课网手记

    通过itchat获取微信的相关消息,将微信消息传输到青云客机器人接口,获取机器人的返回消息。将返回消息返回给微信消息的发送人。以此实现将微信个人号变身为聊天机器人。

    因为图灵机器人现在需要实名认证,并每天免费数量只有100条,感觉非常麻烦,所以找了一个免费的接口-青云客,虽然这个智能程度没有图灵机器人那么高,但是也足够应付基本的消息了,不过有时候有点智障,谨慎使用哈

    以下是接口说明:

    在这里插入图片描述

    安装库

    需要安装以下python库才能够跑起来

    1. itchat
    2. requests

    具体代码

    # -*- coding: utf-8 -*-
    # @Time    : 2019/7/3 14:23
    # @Author  : donlex
    # @Email   : donlex@qq.com
    # @Software: PyCharm 2018.1.4 (Professional Edition)
    import itchat
    import requests
    
    def get_response(msg):
        apiUrl = 'http://api.qingyunke.com/api.php?key=free&appid=0&msg={}'.format(
            msg)
        # 发送post请求
        r = requests.post(apiUrl).json()
        # 替换br字符串
        response = r.get('content').replace('{br}', '\n')
        return response
    
    # 用于接收来自朋友间的对话消息
    # 如果不用这个,朋友发的消息便不会自动回复
    @itchat.msg_register(itchat.content.TEXT)
    def print_content(msg):
        return get_response(msg['Text'])
    
    
    if __name__ == '__main__':
        itchat.auto_login(True) #保存登录信息,下次不用扫码
        itchat.run()
    

    详细解释

    itchat.auto_login()是将会通过微信扫描二维码登录,但是这种登录的方式确实短时间的登录,并不会保留登录的状态,也就是下次登录时还是需要扫描二维码。

    另外,扫码登录是通过网页版微信登陆,因为新注册的微信账号可能不支持网页版功能,所以最好是在使用之前,先验证下能够登录网页版微信。

    其他机器人

    展开全文
  • web微信自动回复,(微信!!!非微信公众号)
  • 微信针对回复自动化方面打击很严格,新注册的账号是不能登录网页版的,VX网页版也在逐渐关闭,但对于有些业务是需要自动机器人回复 源码截图:https://s1.ax1x.com/2020/03/28/Gk5VVs.png
  • 自从微信网页版登录禁止后,原来的自动登录回复就失效了。接下来使用一个库PyWeChatSpy,需要pip下载 一、创建机器人 进入图灵机器人官网http://www.tuling123.com/, 戳进帮助中心。 注册用户 创建机器人 ...


    前言

    自从微信网页版登录禁止后,原来的自动登录回复就失效了。接下来使用一个库PyWeChatSpy,需要pip下载

    一、创建机器人

    进入图灵机器人官网http://www.tuling123.com/

    戳进帮助中心。

    在这里插入图片描述在这里插入图片描述

    注册用户

    创建机器人
    在这里插入图片描述

    然后在机器人管理界面,创建图灵机器人,最多可以创建5个,由此得出对应的5个apikey。(实际上一个就够了)

    apikey是针对接口访问的授权方式。

    二、完成代码

    创建一个储存图片的文件,来回复拍一拍消息
    和代码放在同一个文件夹

    在这里插入图片描述

    完成代码

    from PyWeChatSpy import WeChatSpy
    import random
    import re
    import json
    import  requests
    import time
    userid = str(1)
    # 1 可以替换成任何长度小于32的字符串哦
    apikey = str('')
    # 这里的A,记得替换成你自己的apikey~
    
    
    # def robot(content):#调用机器人
    #     # 图灵api
    #     api = r'http://openapi.tuling123.com/openapi/api/v2'
    #     # 创建post提交的数据
    #     data = {
    #         "perception": {
    #         "inputText": {
    #         "text": content
    #                          }
    #                       },
    #         "userInfo": {
    #                     "apiKey": apikey,
    #                     "userId": userid,
    #                     }
    #     }
    #     # 转化为json格式
    #     jsondata = json.dumps(data)
    #     # 发起post请求
    #     response = requests.post(api, data = jsondata)
    #     # 将返回的json数据解码
    #     robot_res = json.loads(response.content)
    #     # 提取对话数据
    #     print(robot_res["results"][0]['values']['text'])
    
    def my_parser(data):
        if data["type"] == 5: # 判断是微信消息数据
            for msg in data["data"]:
                if (msg["self"] == 0):
                # 遍历微信消息
                    if msg["msg_type"] == 10000:  # 判断是微信拍一拍系统提示               
                        m = re.search('.*?拍了拍我。', msg["content"])
                        if m:  # 判断为拍一拍
                            image_path = f"E:/images/{random.randint(1,4)}.jpg"  # 随机选一张回复用的图片
                            itchat.send_file(msg["wxid1"], image_path)
                            itchat.send_text(msg["wxid1"], "我可能在学习吧(自动回复)")
    
    
                    elif msg["msg_type"] ==1:#判断为文本消息
                        if(re.search('.*?@chatroom',msg["wxid1"])==None):#判断不是群消息
                            m = re.search('在吗', msg["content"])
                            if m:
                                itchat.send_text(msg["wxid1"],"我是机器人恒利,有事请留言。",)
                            # print(msg["msg_type"])
                            # print(msg["self"])
                            # print(msg["wxid1"])
                            # print(data["pid"])
    
    
                            else:
                                api = r'http://openapi.tuling123.com/openapi/api/v2'
                                # 创建post提交的数据
                                data = {
                        "perception": {
                           "inputText": {
                               "text":  msg["content"]
                           }
                         },
                        "userInfo": {
                           "apiKey": apikey,
                           "userId": userid,
                        }
                         }
                                 # 转化为json格式
                                jsondata = json.dumps(data)
                                # 发起post请求
                                response = requests.post(api, data=jsondata)
                                # 将返回的json数据解码
                                robot_res = json.loads(response.content)
                                # 提取对话数据
                                print(robot_res["results"][0]['values']['text'])
                                #content = msg["content"]
                                # 输入对话内容
                                #robot(content)
                                itchat.send_text(msg["wxid1"], '['+robot_res["results"][0]['values']['text'] + '(自动回复)]')
    
    
    
    
    itchat = WeChatSpy(parser=my_parser)  # 实例化WeChatSpy类
    
    
    if __name__ == '__main__':
        itchat.run()  # 运行代码
    

    在这里插入图片描述

    展开全文
  • 用Python做个微信自动回复机器人

    千次阅读 多人点赞 2018-08-13 21:26:37
    微信已经成为我们生活不可或缺的一部分,每天有380亿条消息从微信上发出,其中6亿条是语音消息,有350万个活跃的公众账号,并存在着8亿活跃粉丝。...一个自动回复机器人 微信自上线以来,一直没有自动回复的功能...

    微信已经成为我们生活不可或缺的一部分,每天有380亿条消息从微信上发出,其中6亿条是语音消息,有350万个活跃的公众账号,并存在着8亿活跃粉丝。微信是一个庞大的生态群体。

    今天我们来玩转一下微信,微信有关的第三方框架很多,比如wxpy,wxBot等。今天要使用的是其中著名的itchat Python模块来做两件有趣的事情。

     

    一个自动回复的机器人


    微信自上线以来,一直没有自动回复的功能,想必是有他们的理念。但是有些人群,确实对此功能有一定需求,我举两个栗子:

    • 不愿时刻被消息打扰的人

    • 消息需要批量处理的人们(比如微商)

    功能列表:

    • 收到消息立即自动回复

    • 收到消息延迟指定时间回复

    • 对不同好友定制不同的回复内容

    • 在手机端随时进行控制


    1.启用itchat模块

    itchat的原理是通过扫码进行远程微信网页端的登录,然后通过在移动端进行操作,网页端进行响应,来实现一些功能,虽然似乎绕了个弯子,但是在微信的限制下,这似乎已经是一种最佳的方式了。

    首先我们需要考虑别的问题是:程序如何在微信端接收到你的指令。此时出现了一个非常重要的角色:文件管理器。(当网页端微信登陆后,消息列表会出现)此时,文件管理器充当了移动端和web端的桥梁。

    我们可以先通过设定几个全局变量来做作为功能的开关和保存数据的容器。

    然后通过判断web端在”文件管理器“中接收到的字符串指令来进行不同操作,假如此时我们收到了朋友的消息,需要程序给出自动回复。

     

    收到朋友消息即时进行自动回复是很简单的,但是如何去做延时发送回复消息呢?我先谈一谈我的想法,抛砖引玉:

     

    • 一般发送消息需要用到队列,进行入队和出队,我在这里设置了一个字典来保存消息发送者的数据。

    • 键为消息发送者的昵称,值是一个长度为2的数组,分别保存消息发送者的微信id和接收消息时的时间戳。

    • 这样我将每条发送过来的朋友信息保存在这个字典中,再通过将设定延迟时间同消息时间戳求和与当前时间戳进行对比,若当前时间戳较大,那么执行发送消息的操作。

    • 此时再开启一个线程作为定时任务,定时去检测字典中每条数据是否到达了发送的临界要求(当前时间戳>=消息时间戳+设定的延迟时间)。

    • Python中有个专门做定时任务的模块叫sched,但是我尝试了一下,sched会阻塞当前主线程,也会阻塞itchat的线程,所以并不合适。

    • 这里我还是采用了threading的Timer来充当定时器,不过要注意使用递归,否则将会出现运行一次就结束的情况。

     


    到此为止,主要的功能已经实现了,我用一个测试账号对我的微信进行了各种测试,看一下以下截图:

     

     

     

    2.增强功能

    这时功能基本已经完成了,这就结束了吗?别着急,再想想有没有需要完善一下的地方?用过微信web端的同学应该知道,当web端长期处于未操作的状态下会失去连接。

     

    在我们这个情况下,假如你长时间未收到微信消息,后台程序将会与微信失去连接,再次开启需要登上服务器重启程序,这显然非常麻烦。有没有什么简单的解决办法呢?

     

    我想到一些应用的后台通常会做一道心跳检测机制,那我就模仿这个思路,定时给我的”文件管理器“发一个字符串,来保持连接。

     

    def keep_alive():
       text="保持登录"
       itchat.send(text, toUserName="filehelper")
       global timer2
       timer2 = threading.Timer(60*60,keep_alive)
       timer2.start()

     

    最后,我们需要将这个程序发布在服务器上,让它全天候为我的微信服务。

     

    这里需要注意,如果仅用python xxxx.py来运行的话,关闭shell会导致进程结束,所以我们需要使用nohup python xxxx.py &来全方位守护进程,这里啰嗦一句,nohup和&的功能是不一样的,很多人容易混淆,感兴趣的话可以去查下资料区分一下。

     

        简单分析微信好友信息

     

    上文提到,既然我们能通过itchat来获取好友的信息,那让我们看看都有哪些好玩的信息。这是以json形式返回的我的信息,同理我的好友的这些公开信息我也能获取到。

     

     

    我们就来进行一些简单的的数据抓取,清洗与呈现。我看中的字段是:Sex、City、Province、Signature。我想做的是通过图表来直观地展示我微信好友中的性别比例家乡分布(当然不一定准确,很多人都是胡乱设置的),我的江苏朋友的市级分布,以及好友个性签名的词云

     

    这部分内容主要是需要熟悉诸如pyecharts、jieba、wordcloud模块的API调取,难度不大,但需要细心调试。我这里就不详细赘述了。

     

    1).性别比例

     

    用饼图可视化一下:

     

     

    2).好友省级分布

    def get_data(type):
       result=[]
       my_friends = itchat.get_friends(update=True)[0:]
       for item in my_friends:
           result.append(item[type])
       return result
    
    def friends_province():
       # 获取好友省份
       province= get_data("Province")
       # 分类
       province_distribution = {}
       for item in province:
           #删除英文省份,因为中国地图表中没有
           if bool(re.search('[a-z]',item)):
               continue
           elif not province_distribution.__contains__(item):
               province_distribution[item] = 1
           else:
               province_distribution[item] += 1
       #将省份名为空的删除
       province_distribution.pop('')
       #提取地图接口需要的数据格式
       province_keys=province_distribution.keys()
       province_values=province_distribution.values()
    
       return province_keys,province_values
       
    if __name__ == '__main__':
       itchat.auto_login(True)
    
       微信好友省份分布
       attr,value=friends_province()
       map = Map("我的微信好友分布", "@寒食君",width=1200, height=600)
       map.add("", attr, value, maptype='china', is_visualmap=True,
               visual_text_color='#000')
       map.render()

     

    用地图来显示一下:

     

    3).个性签名词云

    def friends_signature():
       signature = get_data("Signature")
       wash_signature=[]
       for item in signature:
           #去除emoji表情等非文字
           if "emoji" in item:
               continue
           rep = re.compile("1f\d+\w*|[<>/=【】『』♂ω]")
           item=rep.sub("", item)
           wash_signature.append(item)
    
       words="".join(wash_signature)
       wordlist = jieba.cut(words, cut_all=True)
       word_space_split = " ".join(wordlist)
       coloring = np.array(Image.open("C:/Users/casua/Desktop/test1.JPG"))
       my_wordcloud = WordCloud(background_color="white", max_words=800,
                                mask=coloring, max_font_size=80, random_state=30, scale=2,font_path="C:/Windows/Fonts/STKAITI.ttf").generate(word_space_split)
    
       image_colors = ImageColorGenerator(coloring)
       plt.imshow(my_wordcloud.recolor(color_func=image_colors))
       plt.imshow(my_wordcloud)
       plt.axis("off")
       plt.show()

     

    看一下词云图:

     

    展开全文
  • W微信自动回复机器人

    2019-04-25 11:26:33
    使用网络请求,实现简易微信机器人.
  • 30行代码实现微信自动回复机器人

    千次阅读 2019-01-29 08:37:55
    30行代码实现微信自动回复机器人 一、写在前面 今天下午又学到了itchat另一种有趣的玩法---微信自动回复机器人。 程序很简单仅仅三十行代码左右,实现了机器人自动与你的微信好友聊天,下面是我的机器人小笼包跟自己...
  • 微信的自动回复机器人的实1.现 1.什么是wxpy包。我可以在哪下载它? 2.如何实现wxpy的自动回复功能。 先上代码,这是一个对特定好友的自动回复功能。 实现的功能是,搜索你好友列表中备注为 叶 的好友,把他发送的...
  • 大家好,又来到Python办公自动化专题。在之前的系列文章中,我们已经讲解了如何利用Python读取、收发、管理邮件。本文将进一步分享如何用Python制作一个邮件自动回复机器人。比如当发...
  • python之微信自动回复机器人

    千次阅读 2017-12-16 16:54:27
    用python做一个像微软小冰的机器人 1.工具链接:https://pan.baidu.com/s/1gfeoe6B 密码:iqho 2去这个网站http://www.tuling123.com/   注册一个账号
  • 今日推荐加小编微信(cxydev)备注:CSDN,加入免积分下载群备注:加群,你加入程序员吹水群机器人自动邀请的本文来源于Ahab杂货铺授权发布 ...
  • Python实现微信自动回复机器人

    万次阅读 2017-10-09 18:00:51
    代码写好后,运行便会出现网页版微信登录的二维码,用手机微信扫码后,稍等一下就可以实现微信聊天机器人了,当你的好友给你发消息时,你的微信机器人便会自动回复。如下图: ) 其中robots列表中有三个字符...
  • 目录关于wxpy安装wxpy利用机器人实现微信自动回复获取金山词霸每日一句获取天气预报数据定时发送每日一句与天气预报结束 关于wxpy wxpy其实是通过微信网页版的api实现对微信的一些相应操作,所支持的功能也局限于...
  • “傻瓜式”微信自动回复机器人配置教程 首先下载Python和Pip 到官网上去下源文件Python官网下载,Pip下载地址 这里建议Pip不要直接在这下,后面会有提到。 我下的是Python 2.7.8,Python 3可能和这个版本有点小...
  • 简单粗暴,分享一种有趣的玩法---微信自动回复机器人。   程序很简单仅仅三十行代码左右,实现了机器人自动与你的微信好友聊天,下面是我的机器人小笼包跟自己微信好友聊天的截图。   二、程序介绍 欢迎...
  • 2、将下面的代码保存成py文件,在环境中或者Pycharm中运行该文件,会弹出QT二维码,用微信扫码会在后台登陆网页版微信,只要不关闭程序,那么当有人给你发消息的时候,就会自动回复了 # 代码转自:...
  • 手把手教你实现微信自动回复机器人+查看别人撤回的消息(部署到云服务器) 前言 首先你的微信号能够登录网页版微信,才能打造你的专属个人微信号机器人,点击跳转网页版微信登录页面 类似的文章网上也都有,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,676
精华内容 1,070
关键字:

网页自动回复机器人