精华内容
下载资源
问答
  • 主要介绍了itchat-python搭建微信机器人,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • Python创建微信机器人

    万次阅读 多人点赞 2019-04-20 09:30:44
    微信,一个日活10亿的超级app,不仅在国内社交独领风骚,在国外社交也同样占有一席之地,今天我们要将便是如何用Python来生成一个微信机器人,突然想起鲁迅先生曾经说过的一句话: 因为是微信机器人系列的第一篇...

    微信,一个日活10亿的超级app,不仅在国内社交独领风骚,在国外社交也同样占有一席之地,今天我们要将便是如何用Python来生成一个微信机器人,突然想起鲁迅先生曾经说过的一句话:
    在鲁迅
    因为是微信机器人系列的第一篇文章,所以猪哥会特别详细的讲解每一地方,尽量使每一位想学习的同学都能顺顺利利的开始,下面就让我们一起来做些有趣的事吧!
    聊天截图

    如何监听别人的消息?如何实现放撤回?扫描下方二维码关注微信公众号「 裸睡的猪 」回复:微信机器人 即可获取教程!

    在这里插入图片描述

    一、项目介绍

    1.微信库选择

    python关于开发微信的库主要有itchatwxpy,而wxpy底层是调用的itchat,所以如果你只是要使用的话建议使用wxpy库,它比其他的库都要优雅,更面向对象,而且深度整合了图灵机器人小i机器人;而itchat扩展性更好,如果你想自己开发一个自己的微信库那建议选itchat

    2.实现原理

    我相信有不少同学使用过微信的网页版,而wxpy(底层使用itchat)库就是模拟登录网页端,然后调用微信的api实现操作的,我们可以查看itchat源码发现。
    用户代理信息
    将代理信息放在请求头中
    总之大家记住,目前wxpyitchat都是模拟网页版微信来操作的

    3.图灵机器人

    既然可以模拟网页微信了,那又如何做到自动回复呢?这里我们就使用到了图灵机器人,大家可以在他们的官网(http://www.tuling123.com)免费注册账号,然后申请一个免费的机器人,每个人最多免费申请五个机器人。
    图灵机器人
    我会在项目代码中给一个默认的apikey,让大家不用下载就可以尝试,但是还是建议自己去申请,因为这个默认的apikey有调用次数限制,况且这算是一笔免费的财富呢!

    4.整体流程

    为了方便大家理解,猪哥给大家画了一个时序图
    机器人工作原理时序图

    二、项目代码

    先来张项目结构图压压惊:
    项目结构

    1.下载项目

    猪哥已经把项目放在了GitHub上,群里有小伙伴反馈不会使用github,这里我就详细讲一下如何从github上下载项目。

    注意:github与git不是同一个东西,github是全球最大的同性恋交友论坛,在这里我们不比颜值与财富,只比谁的项目star多,star越多也就说明你越吸引同性的喜欢与爱慕,甚至连你的同事也会爱上你!而git是项目管理工具,github上的项目就是用git来管理,项目管理工具另一派系是svn。

    交个朋友吧
    首先找到你需要下载的项目,然后点击Clone or download,然后点击右侧的复制按钮,猪哥这个项目的地址是:https://github.com/pig6/wxrobot
    复制github项目链接
    然后打开你的pycharm,选择CSV->Checkout from version control->git,然后粘贴刚才复制的项目链接。
    git下载项目
    克隆项目
    最后pycharm可能会提示你使用 新窗口打开 还是用 当前窗口 打开,猪哥一般习惯使用 新窗口(New Window) 打开,这样可以避免多个项目开发时造成混乱。

    2.下载wxpy库

    项目下载下来之后,因为没有安装必须的库wxpy,pycharm可能会有如下提示,这时我们点一下install就可以。
    缺少库提示
    如果没有出现安装库提示的话,我们可以在Setting->Project->Project Interpreter里面添加wxpy库。
    下载库
    或者使用以下命令下载wxpy库,如果你是pip3则替换下面的pip。

    pip install -U wxpy -i “https://pypi.doubanio.com/simple/”

    3.运行项目

    你可以按右上角的绿色三角形按钮,也可以右键项目然后点击run
    run
    运行之后弹出登录二维码,手机微信扫一扫点击确定登录即可和好友聊天。
    登录二维码

    三、总结

    首先感谢大家的耐心阅读,考虑到有很多零基础的同学所以文章有点长。

    猪哥来总结下这几天使用wxpy库开发微信机器人的一些感受吧!

    1. 猪哥用自己的大号测试了一周,也没有出现被封的迹象,只要不发送大量的相同信息就没问题
    2. 即使出现被封也只是会限制你微信登录网页版,手机端不影响使用,正常使用大概一两周就自动解封
    3. 最好用小号测试,一年以内注册的微信号不可以登微信网页版,也就是说不能用测试
    4. 微信网页版有些功能位阉割了,比如:添加好友,拉人入群等,因为怕微商使用机器人到处作恶所以才阉割
    5. 目前只开发了一个功能,先让大家入门,后面的功能会慢慢丰富起来
    6. 目前wxpy基于微信网页登录,很多功能无法实现,后期考虑跟换成iPad登录
    7. 图灵机器人智商有待提高
    8. 最后感谢武亚飞同学提供的微信小号

    wxpy官方文档:https://wxpy.readthedocs.io/zh/latest

    获取源码:vx扫描下方二维码,关注vx公号「裸睡的猪」,回复:微信机器人 即可获取!
    在这里插入图片描述

    展开全文
  • itchat-python搭建微信机器人 itchat是python开源第三方库,用于搭建微信机器人,几十行代码就能帮你实现自动的处理所有信息。比如,添加好友,搭建自动回复机器人,还原撤销信息,分析好友男女比例,地理分布情况...

    itchat-python搭建微信机器人

    itchat是python开源第三方库,用于搭建微信机器人,几十行代码就能帮你实现自动的处理所有信息。比如,添加好友,搭建自动回复机器人,还原撤销信息,分析好友男女比例,地理分布情况,爬朋友圈做数据分析…
    本文只是简单实现聊天机器人,想了解更多关于itchat的用法请参照:https://itchat.readthedocs.io/zh/latest/

    安装

    pip install itchat
    

    登录

    itchat.auto_login(hotReload=True)
    

    执行后会出现一个二维码,扫码登录。hotReload=True可以保留登录状态,以至于往后的重启程序可以跳过扫码登录。

    消息类型

    参数 类型
    TEXT 文本
    MAP 位置
    CARD 名片
    SHARING 分享
    PICTURE 图片表情
    RECORDING 语音
    ATTACHMENT 附件
    VIDEO 小视频

    发送消息

     send(msg='text',toUserName=None)
    

    msg:发送的内容
    toUserName:发送对象,None表示自己

    内容类型

    • 图片:@img@img_path

    • 视频:@vid@vid_path

    • 文件:@fil@file_path
      ps:接收到的附件路径一般默认存放在当前路径的msg[‘FileName’]下

    注册会话监听

    #TEXT:监听的消息类型
    @itchat.msg_register(TEXT)
    def text_reply(msg):
    	#过滤掉某人,NickName是昵称
        if msg.User['NickName'] == 'xxx':
            pass
        else:
            # return_text = tuling(msg.text)
            #这种send方法会自己回复自己的消息
            # msg.user.send(u'收到了')
            #只回复对方的消息
            return u'收到了'
    

    图灵聊天机器人

    在图灵机器人官网(http://www.tuling123.com)注册账号,创建机器人,如果只是学习的话,可以使用免费版,一个账号最多可以创建5个机器人,一个机器人日调用接口数5000次。

    #申请机器人后会拿到一个key
    key = '3c925fbee6f84ad2aa032ab05d4581b0'
    def tuling(info):
        url = "http://www.tuling123.com/openapi/api?key=%s&info=%s" % (key, info)
        r = requests.get(url)
        #返回消息
        return r.json().get('text')
    

    附上完整代码(文本图片群聊)

    # coding: utf-8 
    # @Time    : 2019/2/20 23:32
    # @Author  : lsn
    # @File    : itchat_demo.py
    # @Software: PyCharm
    import itchat
    import requests
    from itchat.content import *
    
    key = '3c925fbee6f84ad2aa032ab05d4581b0'
    
    
    def tuling(info):
        url = "http://www.tuling123.com/openapi/api?key=%s&info=%s" % (key, info)
        r = requests.get(url)
        return r.json().get('text')
    
    
    @itchat.msg_register(TEXT)
    def text_reply(msg):
        if msg.User['NickName'] == 'xxx':
            pass
        else:
            return_text = tuling(msg.text)
            # msg.user.send(return_text)
            return return_text
    
    
    @itchat.msg_register(
        [PICTURE, RECORDING, ATTACHMENT, VIDEO])
    def download_files(msg):
        print msg['Type']
        print msg['FileName']
        msg['Text'](msg['FileName'])
        return '@%s@%s' % ({'Picture': 'img', 'Video': 'vid'}.get(msg['Type'], 'fil'), msg['FileName'])
    
    
    @itchat.msg_register(TEXT, isGroupChat=True)
    def group_text_reply(msg):
        group_list = list()
        # 针对指定群回复
        group_list.append(u'弹一弹')
        group_list.append(u'养生游戏分享')
        # 当然如果只想针对@你的人才回复,可以设置if msg['isAt']:
        if msg.User['NickName'] in group_list:
            return tuling(msg.text)
        else:
            pass
    
    
    itchat.auto_login(hotReload=True)
    itchat.run()
    
    

    参考:https://blog.csdn.net/enweitech/article/details/79585043

    展开全文
  • 超简单Python实现微信机器人自动回复

    万次阅读 多人点赞 2018-07-09 17:08:13
    拿使用图灵机器人设置自动回复,让机器人微信好友傻傻的聊天,机器人比小编还会聊天,无论是对美眉还是汉纸,上来就是爱!爱!爱!简直太辣眼睛!!!用它进行来调戏微信好友,简直6的一笔! (记住一条!千万不...

     

    下面这个小文章适合初学Python的童鞋哦~~~

    一个很好用的微信库:itchat

    拿使用图灵机器人设置自动回复,让机器人跟微信好友傻傻的聊天,机器人比小编还会聊天尴尬,无论是对美眉还是汉纸,上来就是爱!爱!爱!简直太辣眼睛!!!害羞用它进行来调戏微信好友,简直6的一笔!

    (记住一条!千万不能对女票使用,遭遇一万点伤害哭

    好啦,下面就来一起看一下如何使用吧!

    使用工具:itchat,requests

    1. 搭建python开发环境,这个就不用多说了嘛,可自行百度,需要注意一点的就是记得将python安装路径加入环境变量~

    2. 安装itchat库

      通过管理员权限运行命令提示符,直接输入以下代码:

      pip install itchat

      pip install requests

      然后会自动从网上下载资料自行安装,很简单,很傻瓜~有木有~python真的好呆萌~~~

    3. 获取一个图灵机器人API

      不要把API想的太复杂,就是一个接口啦,啥?你不明白啥是接口,唉呀~就是一个口子,你能进去,干点事情或者拿点东西再出来,就这么个东东~~(额~同学不要想多了,一不留神就开车~~吐舌头

      实现原理:当我们获取微信好友发来的消息时,我们将这个消息传给机器人的API,然后它就会根据消息做出答复,然后我们再将这个消息返回给微信好友,就OK啦!

      虽然描述的过程比较长,但是机器运行的很快,调用这个接口实现的过程真的特别~特别快~~~(哎呀~车辆转弯,请抓稳扶好~~害羞害羞

      童鞋可以从下面这个官网上注册帐号,获取图灵机器人的API:

      http://www.tuling123.com/

      注册成功后,我们就可以获得下面这个api的key啦,先拿下留用!

      (小编将key打码了,童鞋可以自行获取无码的key,咳咳~~害羞

    4.  

      代码实现

      说了这么多,下面可以列代码了,童鞋不要紧张,代码很少哟~(如果代码让你感觉不舒服,文章底部有整理好的源代码,童鞋可以拿去自行玩耍。记住,不在太嗨了哟~~~)

      第一步:导入我们需要使用的工具

      import itchat
          import requests
          import re

      第二步:定义一个获取网页的函数

      原理:上面我们已经提到,将微信好友发来的消息传送给图灵机器人API,以下我们简称为小图。而小图实际上就是在一个网页上运行的,下面上图来看一下:

      其中"text"就表示我们要跟小图说的话,这部分将被替换为微信好友发来的消息,以下定义一个抓取网页的函数:

      def getHtmlText(url):
          try:
             r = requests.get(url,timeout=30)
             r.raise_for_status()
             r.encoding = r.apparent_encoding
             return r.text
          except:
             return ""

      第三步:调用itchat封装好的装饰器

      @itchat.msg_register(['Text','Map', 'Card', 'Note', 'Sharing', 'Picture'])

      其中"Text"即表示为文字消息,除此之外还有其他的图片、表情等消息,都可以将此发给小图~它还很聪明的~~

      第四步:定义自动回复函数

      def text_reply(msg):
         # 判断一下发件人不是自己
           if not msg['FromUserName'] == Name["你的昵称"]:
              url = "http://www.tuling123.com/openapi/api?key=(此处填写您的key)&info="
              # 将获取的信息附在链接的尾部
              url = url + msg['Text']
              # 通过定义的网页抓取函数获取页面内容
              html = getHtmlText(url)
              # 以下两行代码用到了正则表达式,感兴趣的同学可以查一下哦
              message = re.findall(r'\"text\"\:\".*?\"',html)
              reply = eval(message[0].split(':')[1])
              return reply

      第五步:定义一个主函数来运行它

      if __name__ == '__main__':
           #  通过itchat扫码登录微信网页版
           itchat.auto_login()
           #  获取所有微信好友的信息
           friends = itchat.get_friends(update=True)[0:]
           #  使用字典存放好友昵称与用户名
           Name = {}
           #  好友昵称
           Nic = []
           #  好友用户名
           User = []
               for i in range(len(friends)):
                   Nic.append(friends[i]["NickName"])
                   User.append(friends[i]["UserName"])
               for i in range(len(friends)):
                    Name[Nic[i]] = User[i]
                    itchat.run()

      好啦,大功告成啦,有兴趣的同学可以一起玩玩看哦~下面附源代码:

      如果内容有错误,请看客指出哦,谢谢啦~~~

      另外补充一下,小编真的是一位很纯洁的小哥哦,嘿嘿嘿~~~

      # 源代码如下:
      # wechat autoreply
      import itchat
      import requests
      import re
      # 抓取网页
      def getHtmlText(url):
              try:
                      r = requests.get(url,timeout=30)
                      r.raise_for_status()
                      r.encoding = r.apparent_encoding
                      return r.text
              except:
                      return ""
      # 自动回复
      # 封装好的装饰器,当接收到的消息是Text,即文字消息
      @itchat.msg_register(['Text','Map', 'Card', 'Note', 'Sharing', 'Picture'])
      def text_reply(msg):
          # 当消息不是由自己发出的时候
          if not msg['FromUserName'] == Name["Jestiao"]:
              # 回复给好友
              url = "http://www.tuling123.com/openapi/api?key=您的小图key&info="
              url = url + msg['Text']
              html = getHtmlText(url)
              message = re.findall(r'\"text\"\:\".*?\"',html)
              reply = eval(message[0].split(':')[1])
              return reply
      
      if __name__ == '__main__':
          itchat.auto_login()
      
          # 获取自己的UserName
          friends = itchat.get_friends(update=True)[0:]
          Name = {}
          Nic = []
          User = []
          for i in range(len(friends)):
                  Nic.append(friends[i]["NickName"])
                  User.append(friends[i]["UserName"])
          for i in range(len(friends)):
                  Name[Nic[i]] = User[i]
          itchat.run()
      

    猜您喜欢:

    超级便捷精巧绿色的屏幕分享小软件IntelexEMC 

    超简单一键提取QQ群成员

    一键拼接微信好友头像/玩炫朋友圈

     

    展开全文
  • 利用python搭建微信聊天机器人

    万次阅读 2017-08-20 15:00:11
    首先写一个基于python的简要版微信聊天机器人。具体原理如为:将好友消息转发给图灵机器人,获得图灵机器人的回复后,将消息转发给原好友,也就是说,我们将搭建从图灵机器人到好友的沟通桥梁。具体操作如下: 1)...

    最近一好友将其个人微信号设置为聊天机器人,看得我也心痒痒,想试一试。

    模仿参考网站搭建了一个简单的聊天机器人,具体原理如为:将好友消息转发给图灵机器人,获得图灵机器人的回复后,将消息转发给原好友,也就是说,我们将搭建从图灵机器人到好友的沟通桥梁。具体操作如下:

    1)搭建python3开发环境,建议使用pycharm软件;

    2)注册图灵机器人,并获取APIkey;

    3)添加wxpy包,使用wxpy包可以简化开发步骤,对于几乎是小白的我来说,这最好不过啦;

    4)编写代码并登陆。

    代码及注释如下:


    import requests		
    from wxpy import *
    import json
    robot = Bot()				
    def talks_robot(info = '你好啊'):
       api_url = 'http://www.tuling123.com/openapi/api'
       apikey = 'beed34db67e945a6955a02d6e270cd76'
       data = {'key': apikey,
                   'info': info}
       req = requests.post(api_url, data=data).text
       replys = json.loads(req)['text']
       return replys
    
    @robot.register()
    def reply_my_friend(msg):
       message = '{}'.format(msg.text)
       replys = talks_robot(info=message)
       return replys
    robot.start()
    embed()
    

    参考:http://wxpy.readthedocs.io/zh/latest/index.html

          http://www.jianshu.com/p/7af30151cd50?winzoom=1.375

    上述代码将对包括群消息在内的所有消息自动回复,慎用尴尬

    因为之前对python的学习都是零星的,学的很不扎实,对代码也只能是照搬照抄,好伤心,虽然手里还有项目和作业没完成,但我还是想尝试稍微深入地学习一下python。就这么说定啦!
    展开全文
  • 利用itchat搭建微信机器人详解(附三个实用示例)

    万次阅读 多人点赞 2018-08-02 14:05:53
    而很多加群的小朋友很多都是咨询如何搭建微信机器人的,所以就把这一章放出来了, 取需,三个实用示例:定时发信息,集成图灵API实现聊天机器人,微信防撤回实现,基本够玩了。 另外,微信改版了网页端,很多接口...
  • 文章目录 在从零搭建微信机器人(一):注册企业微信创建应用中,我们注册了企业微信,并且创建了机器人应用,本篇博客将要介绍如何向微信发送消息。
  • 在上一篇从零搭建微信机器人(二):发送文本消息中,我们已经知道了如何向微信发送文本消息,本篇博客将要介绍如何通过设置定时触发任务,自动向微信发送消息。 1. 安装apscheduler apscheduler的全称是advanced ...
  • 前段时间自己用python搭建微信机器人玩了玩,微信web端应该都被禁用了,目前主流的方法就是通过企业微信的api往微信推送消息。虽然利用的是企业微信的接口,但是同样兼容微信,完全可以向微信推送消息并通知。 2. ...
  • 从零搭建微信机器人(一):注册企业微信创建应用 从零搭建微信机器人(二):发送文本消息 从零搭建微信机器人(三):定时触发任务 从零搭建微信机器人(四):封装消息发送接口 文章目录 1. 封装WeChatAPI 1.1 代码总览 ...

空空如也

空空如也

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

python搭建微信机器人

python 订阅