精华内容
下载资源
问答
  • Python微信机器人

    2018-09-12 16:11:00
    Python微信机器人 本文目录 一 简介 二 登录微信 三 微信好友男女比例 四 微信好友地域分布 五 微信聊天机器人 一 简介 wxpy基于itchat,使用了 Web 微信的通讯协议,,通过大量接口优化提升了模块的...

    Python微信机器人

    本文目录

    • 一 简介
    • 二 登录微信
    • 三 微信好友男女比例
    • 四 微信好友地域分布
    • 五 微信聊天机器人

    一 简介

    wxpy基于itchat,使用了 Web 微信的通讯协议,,通过大量接口优化提升了模块的易用性,并进行丰富的功能扩展。实现了微信登录、收发消息、搜索好友、数据统计等功能。

    总而言之,可用来实现各种微信个人号的自动化操作。

    安装:wxpy 支持 Python 3.4-3.6,以及 2.7 版本
    
    pip3 install  wxpy
    
    安装 pillow模块
    
    pip3 install pillow
    
    安装 pyecharts模块
    
    pip3 install pyecharts
    

    二 登录微信

    1 、 扫码登录微信

    from wxpy import *
    
    bot = Bot()

    2、cache_path=True

    运行上面的程序,会弹出二维码,用手机微信扫一扫即可实现登录。

    但上面的程序有一个缺点,每次运行都要扫二维码。不过wxpy非常贴心地提供了缓存的选项,用于将登录信息保存下来,就不用每次都扫二维码,如下

    bot = Bot(cache_path=True) # 必须先登录过一次以后才可以使用缓存

    三 微信好友男女比例

    复制代码
    from wxpy import *
    from pyecharts import Pie
    import webbrowser
    bot=Bot(cache_path=True) #注意手机确认登录
    
    friends=bot.friends()
    #拿到所有朋友对象,放到列表里
    attr=['男朋友','女朋友','性别不详']
    value=[0,0,0]
    for friend in friends:
        if friend.sex == 1: # 等于1代表男性
            value[0]+=1
        elif friend.sex == 2: #等于2代表女性
            value[1]+=1
        else:
            value[2]+=1
    
    
    pie = Pie("朋友男女比例")
    pie.add("", attr, value, is_label_show=True)
    #图表名称str,属性名称list,属性所对应的值list,is_label_show是否显示标签
    pie.render('sex.html')#生成html页面
    # 打开浏览器
    webbrowser.open("sex.html")
    复制代码

    四 微信好友地域分布

    显示中国地图,需要装中国地图模块:

    全球国家地图: echarts-countries-pypkg (1.9MB): 世界地图和 213 个国家,包括中国地图
    中国省级地图: echarts-china-provinces-pypkg (730KB):23 个省,5 个自治区
    中国市级地图: echarts-china-cities-pypkg (3.8MB):370 个中国城市
    中国县区级地图: echarts-china-counties-pypkg (4.1MB):2882 个中国县·区
    中国区域地图: echarts-china-misc-pypkg (148KB):11 个中国区域地图,比如华南、华北。
    
    特别注明,中国地图在 echarts-countries-pypkg 里。需要这些地图的朋友,可以装 pip 命令行:
    pip3 install echarts-countries-pypkg
    pip3 install echarts-china-provinces-pypkg
    pip3 install echarts-china-cities-pypkg
    pip3 install echarts-china-counties-pypkg
    pip3 install echarts-china-misc-pypkg
    复制代码
    from wxpy import *
    from pyecharts import Map
    import webbrowser
    bot=Bot(cache_path=True)
    
    friends=bot.friends()
    
    
    area_dic={}#定义一个字典,用来存放省市以及省市人数
    for friend in friends:
        if friend.province not in area_dic:
            area_dic[friend.province]=1
        else:
            area_dic[friend.province]+=1
    
    attr = area_dic.keys()
    value = area_dic.values()
    
    
    
    map = Map("好朋友们的地域分布", width=1200, height=600)
    map.add(
        "好友地域分布",
        attr,
        value,
        maptype='china',
        is_visualmap=True, #结合体VisualMap
    
    )
    #is_visualmap -> bool 是否使用视觉映射组件
    #
    map.render('area.html')
    
    
    webbrowser.open("area.html")

    五 微信聊天机器人

    1、为微信传输助手传送消息

    这里的file_helper就是微信的文件传输助手,我们给文件传输助手发送一条消息,可以在手机端的文件传输助手中收到括号内的消息

    bot.file_helper.send('lqz say hello')

    2、收发消息@bot.register()

    复制代码
    from wxpy import *
    bot=Bot(cache_path=True)
    
    @bot.register()
    def recv_send_msg(recv_msg):
        print('收到的消息:',recv_msg.text) # recv_msg.text取得文本
        return '自动回复:%s' %recv_msg.text
    
    # 进入Python命令行,让程序保持运行
    embed()
    复制代码

    3、自动给老婆回复信息

    当你在网吧吃着鸡,操作骚出天际时,你老婆打电话让你回家吃饭,此时你怎么办。。。

    复制代码
    from wxpy import *
    bot=Bot(cache_path=True)
    
    girl_friend=bot.search('刘刘刘')[0]
    print(girl_friend)
    
    @bot.register() # 接收从指定好友发来的消息,发送者即recv_msg.sender为指定好友girl_friend
    def recv_send_msg(recv_msg):
        print('收到的消息:',recv_msg.text) # recv_msg.text取得文本
        if recv_msg.sender == girl_friend:
            recv_msg.forward(bot.file_helper,prefix='老婆留言: ') #在文件传输助手里留一份,方便自己忙完了回头查看
            ms='老婆最美丽,我对老婆的爱如滔滔江水,连绵不绝'
            print('>>>给老婆回复的:', ms)
            return  ms#给老婆回一份
    
    embed()
    复制代码

    4、从微信群里定位好友之拍老板马屁

     

    复制代码
    from wxpy import *
    bot=Bot(cache_path=True)
    
    company_group=bot.groups().search('群名字')[0]
    
    boss=company_group.search('老板名字')[0]
    
    
    @bot.register(chats=company_group) #接收从指定群发来的消息,发送者即recv_msg.sender为组
    def recv_send_msg(recv_msg):
        print('收到的消息:',recv_msg.text)
        if recv_msg.member == boss:
            #这里不用recv_msg.render 因为render是群的名字
            recv_msg.forward(bot.file_helper,prefix='老板发言: ')
            return '老板说的好有道理,深受启发'
    
    embed()
    复制代码

     

    5、聊天机器人

    给所有人自动回复

     

    复制代码
    import json
    import requests
    from wxpy import *
    bot = Bot(cache_path=True)
    
    # 调用图灵机器人API,发送消息并获得机器人的回复
    def auto_reply(text):
        url = "http://www.tuling123.com/openapi/api"
        api_key = "9df516a74fc443769b233b01e8536a42"
        payload = {
            "key": api_key,
            "info": text,
        }
        r = requests.post(url, data=json.dumps(payload))
        result = json.loads(r.content)
        return "[来自智能机器人] " + result["text"]
    
    
    @bot.register()
    def forward_message(msg):
        return auto_reply(msg.text)
    
    embed()
    复制代码

     

    给指定的群回复

    复制代码
    import json
    import requests
    from wxpy import *
    bot = Bot(cache_path=False)
    
    group=bot.groups().search('群名字')[0]
    print(group)
    
    # 调用图灵机器人API,发送消息并获得机器人的回复
    def auto_reply(text):
        url = "http://www.tuling123.com/openapi/api"
        api_key = "9d602fe417464cd18beb2083d064bee6"
        payload = {
            "key": api_key,
            "info": text,
        }
        r = requests.post(url, data=json.dumps(payload))
        result = json.loads(r.content)
        return "[来自智能机器人] " + result["text"]
    
    
    @bot.register(chats=group)
    def forward_message(msg):
        return auto_reply(msg.text)
    
    embed()
    复制代码

    给指定的人回复

    复制代码
    import requests
    from wxpy import *
    bot = Bot( cache_path=True)
    
    girl_friend=bot.search('名字r')[0]
    
    # 调用图灵机器人API,发送消息并获得机器人的回复
    def auto_reply(text):
        url = "http://www.tuling123.com/openapi/api"
        api_key = "申请图灵机器人获取key值放到这里"
        payload = {
            "key": api_key,
            "info": text,
        }
        r = requests.post(url, data=json.dumps(payload))
        result = json.loads(r.content)
        return "[微信测试,请忽略] " + result["text"]
    
    
    @bot.register()
    def forward_message(msg):
        if msg.sender == girl_friend:
            return auto_reply(msg.text)
    
    embed()

    转载于:https://www.cnblogs.com/guobaoyuan/p/9635425.html

    展开全文
  • Python微信机器人程序源码,注释齐全
  • python微信机器人

    千次阅读 2018-08-07 20:49:25
    于是就基于itchat和图灵机器人做了个微信机器人。 github地址:https://github.com/otote/wchat_auto   一、前提: 1、有一台服务器,或者装了linux的电脑。Windows也行。最好是有服务器,不然电脑关了机器人也...

    来源:otote.cn

    长夜漫漫,无心睡眠。突发奇想。于是就基于itchat和图灵机器人做了个微信机器人。

    github地址:https://github.com/otote/wchat_auto

     

    一、前提:

    1、有一台服务器,或者装了linux的电脑。Windows也行。最好是有服务器,不然电脑关了机器人也就关闭了。
    2、需要安装python环境,因为我用的是python3.6,所以推荐安装python3.6环境。Python2没测试过,可自行测试。
    3、安装itchat模块。使用python目录下的pip安装。Linux配置好环境后可以直接用命令:pip install itchat 安装。Windows需要打开cmd窗口,然后将python安装目录下的Scripts目录里的pip.exe拖到cmd窗口,接着输入install itchat后按回车,注意空格隔开。
    4、需要申请图灵机器人的api权限,然后将apikey填入代码中的KEY的位置。申请地址

    二、一顿操作

    新建一个文件,名字自取,最好用过英文。后缀为py。以otote.py为例。
    将以下代码粘贴到otote.py里面后保存退出。(注意将图灵机器人apikey填入代码中的KEY的位置)

    #!/usr/bin/env python3.6
    #coding=utf8
    import requests
    import itchat
    
    KEY = '输入图灵机器人apikey'
    
    flag = False
    stop_reply=False
    default_text="你好,本人不在。联系我请直接拨打电话。或者等本人上线后回复。\n电话号码:110" \
                 "\n如果想继续聊天请回复12138进入聊天机器人系统。回复666退出聊天。\n" \
                 "祝你愉快!  ————来自otote"
    def get_response(msg):
        apiUrl = 'http://www.tuling123.com/openapi/api'
        data = {
            'key'    : KEY,
            'info'   : msg,
            'userid' : 'wechat-robot',
        }
        try:
            r = requests.post(apiUrl, data=data).json()
            return r.get('text')
        except:
            return
    
    @itchat.msg_register(itchat.content.TEXT)
    def tuling_reply(msg):
        global flag
        global stop_reply
        oldflag=flag
        # defaultReply = 'I received: ' + msg.text
        global default_text
        reply = get_response(msg.text)
        # return reply or defaultReply
        if msg.text=="12138":
            flag=True
        elif msg.text=="666":
            flag=False
        elif msg.text == "启动机器人":
            stop_reply = False
        elif msg.text == "停止机器人":
            stop_reply = True
    
        if not stop_reply:
            if flag :
                if not oldflag:
                    return "我们可以开始聊天了。"
                else:
                    return reply+"\n\t\t————来自机器人\n退出机器人请回复666"
            else:
                return default_text
            # return reply or test
    
    @itchat.msg_register(itchat.content.RECORDING)#语音消息
    def voice_reply(msg):
        return tuling_reply(msg)
    
    itchat.auto_login(enableCmdQR=2,hotReload=True)
    #itchat.auto_login(hotReload=True)
    
    
    itchat.run()
    
    # nohup python run.py    #linux后台自动运行

    (1)Windows直接打开cmd窗口输入python 然后将otote.py拖进去(注意空格隔开)然后回车。接着扫描二维码登录即可使用。(关闭cmd后程序自动关闭)

    (2)linux 直接用命令python /文件目录/otote.py运行后扫描二维码登录即可。(关闭终端窗口后会关闭机器人。可先扫码登录成功运行后按ctrl+c终止,然后用命令nohup python otote.py运行后即可关闭终端窗口。)

    三、效果预览:

    展开全文
  • python 微信机器人

    2018-11-30 09:29:30
    # coding:utf-8 from wxpy import * ...# 初始化微信机器人 bot = Bot() #给机器的好友列表 robotFriendList = [] #群聊列表 robotGooupsList = [] #需要发送的消息 infos=[ { 'type': 'image'...
    # coding:utf-8
    from wxpy import *
    # 指定图片文件的路径
    image_path = "./time.png"
    # 初始化微信机器人
    bot = Bot()
    #给机器的好友列表
    robotFriendList = []
    #群聊列表
    robotGooupsList = []
    #需要发送的消息
    infos=[
        {
            'type': 'image',  #消息类型
            'info': './time.png' #消息
        },
        {
            'type': 'text',
            'info': '1'
        },
    ]
    #群聊成员
    groupList = []
    def getmy_friends():
        # 获取所有好友
        global robotFriendList,robotGooupsList
        friend_search = bot.friends()
        for i in friend_search:
            # 保存好友进list
            robotFriendList.append(i)
    
    def getmy_groups():
        # 获取所有的群列表
        gooupsm = bot.groups(update=False, contact_only=False).search()
        print(gooupsm)
        for i in gooupsm:
            # 保存群进list
            robotGooupsList.append(i)
        print(robotGooupsList)
    #给朋友发送消息 事件1
    def Friend_send_code():
        #给好友发送消息
        for m in infos:
            send_msg(m['type'], m['info'])
    
    #给朋友发送消息 事件2
    #type:消息类别
    #val:需要发送的消息
    def send_msg(type,val):
        if type == 'image':
            for i in robotFriendList:
                i.send_image(val)
        elif type == 'text':
            for i in robotFriendList:
                i.send_image(val)
    #获取群聊中的成员
    def getGroupsList(all=True, groupName=1):
        global  groupList
        if all: #获取所有群聊中的成员
            groupList = []  # 初始化
            #获取所有群中的成员
            for i in robotGooupsList:
                found = i.search()
                for m in found:
                    groupList.append(m)
        else:#获取单个群聊中的成员
            groupList = []  # 初始化
            found = groupName.search()
            for m in found:
                #保存进list
                groupList.append(m)
        print(groupList)
    getmy_friends()
    

     

    展开全文
  • Python 微信机器人

    万次阅读 2018-05-27 17:06:09
    使用python构造一个微信聊天机器人 最近在学python的过程中无意间发现一个python库:wxpy,其可以实现让微信自动接收、处理消息并进行回复的一系列功能。感觉挺有意思的,便自行摸索学习,并成功地实现了其功能,故...

    使用python构造一个微信聊天机器人

    最近在学python的过程中无意间发现一个python库:wxpy,其可以实现让微信自动接收、处理消息并进行回复的一系列功能。感觉挺有意思的,便自行摸索学习,并成功地实现了其功能,故写下此博客作学习分享。

     

     

    1.安装wxpy

    wxpy 支持 Python 3.4-3.6,以及 2.7 版本。

    PYPI 官方源下载安装:

    pip install -U wxpy

    从豆瓣 PYPI 镜像源下载安装:

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

    推荐国内用户使用镜像源下载安装,相比官方源更稳定,需要注意的是,若想确保安装到对应的 Python 版本中,命令中的 “pip” 替换为 “pip3” 或 “pip2”。

    linux下还需安装pillow:

    pip install pillow

     

     

    2.申请一个图灵的APIKEY

    需要去官网注册一个图灵机器人并获取APIKEY.(图灵机器人是一个中文语境下的对话机器人,可以使用免费版,一个账号最多可以创建5个机器人,一个机器人日调用接口数5000次)

    官网地址:http://www.tuling123.com/

    若觉得麻烦不想注册也可以,不需要APIKEY也可以实现简单的微信定时发送消息,简单回复等功能,如果想要智能化的自动回复功能,还是乖乖去注册吧。

     

     

    3.用wxpy登录,发送和回复消息

     

    1. 登录
    from wxpy import * # 导入模块
    bot = Bot() # 初始化机器人,扫码登陆,但每次登陆都得重新扫码
    #bot = Bot(cache_path=True)
    #把登录信息保存下来,不想每次都扫码的可以用这一条

     运行后会弹出微信登录的二维码,扫描后登录网页版微信

         2.发送消息

    friend = bot.friends().search(u'你好友的名字')[0]  
    friend.send(u"哈哈")  
    #指定某个好友并向其发送消息

     运行后会向指定好友发送所写的内容,可以在这个功能的基础上进一步实现定时向某人发送消息的功能。我发现一篇关于“教你用微信每天给女朋友说晚安”的文章,有兴趣可以看一下http://www.cnblogs.com/botoo/p/8622379.html

        3.回复消息

    @bot.register()  
    def reply_msg(msg):  
        msg.reply(u'本人正忙,请稍后回复')  
    embed()

    当好友向你发送消息后就会得到统一回复“本人正忙,请稍后回复”。
     

     

    4.调用图灵机器人API,实现自动回复

    from wxpy import * #导入模块
    bot = Bot(cache_path=True)#扫码登陆
    tuling = Tuling(api_key='自行输入')#初始化图灵机器人
    
    @bot.register(msg_types=TEXT)
    def auto_reply_all(msg):
        tuling.do_reply(msg)
    #自动回复功能,回复所有消息
    bot.join()#开始运行

    以下即为我运行成功自动回复的结果

    (以上源码均源自网络)

    关于用图灵的APIKEY来实现自动回复的文章我还收藏了几篇

    https://blog.csdn.net/getcomputerstyle/article/details/70175167

    https://blog.csdn.net/lin_zhongmu/article/details/77429181

    https://blog.csdn.net/qq_36313726/article/details/78572086

     

    5.关于可能出现的错误

        我在实现微信自动回复的过程中也不是一帆风顺的,在安装好wxpy,做好前期准备后,运行程序时出现ImportError: No module named 'wxpy'的错误,找了很久总是找不到解决方法,最后才在该文中找到解决方案:https://blog.csdn.net/damotiansheng/article/details/43916881

    我把自己做的py文件放到 site_packages 目录下,直接运行,成功地解决了问题。

        还有就是关于'sudo'不是内部或外部命令,也不是可运行的程序或批处理文件的错误,该文也给出了解决方案:

    http://www.zhimengzhe.com/windows/62640.html

     

    6.关于wxpy的一些文章

    https://www.jianshu.com/p/c0baf3c6db15

    https://www.jianshu.com/p/ef75e97146c2

    http://blog.sina.com.cn/s/blog_14c3c70df0102whkp.html

     

    需要注意的是不知道用微信机器人会不会有被封号的危险,所以建议大家用小号。

    关于Python构造机器人的学习分享就到这里,对于Python的学习,今后还会不定时更新,和我一样在自学Python的小伙伴可以关注一波,互相激励。害羞

    展开全文
  • Python 微信机器人-用itchat库下载微信接收到的语音、图片等资源实例演示。 itchat.content.RECORDING 指的是语音。 itchat.content.PICTURE 指的是图片。 监听到图片和语音后就会进行下载。 运行效果图: 这是微信...
  • 使用不到三十行的代码,你就可以完成一个能够处理所有信息的微信机器人。当然,该api的使用远不止一个机器人,更多的功能等着你来发现,比如这些。该接口与公众号接口itchatmp共享类似的操作方式,学习一次掌握两个...
  • Python创建微信机器人

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

空空如也

空空如也

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

python微信机器人

python 订阅