我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python+ITchart实现微信机器

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python+ITchart实现微信机器

  这里我主要用了3个机器人,可以切换。

  1.图灵机器人  (傻的不行,一直在问别人问题,没有限制)

    http://www.tuling123.com

  2.showApi上的图灵机器人  (感觉最聪明,可以识别微信表情,英文,中文等,但是因为我是普通会员,每天1000次调用)

    https://www.showapi.com/api/lookPoint/60

  3.茉莉机器人  (功能丰富,但是只识别中文,不识别英文,微信表情)

    http://www.itpk.cn/robot.php

  代码如下:

from itchat.content import *
import itchat
import json
import requests
from ShowapiRequest import ShowapiRequest
import os
import  time
import  datetime
import urllib
import urllib.request


# 调用图灵机器人的api,根据聊天消息返回回复内容
def tuLing(info):
    appkey="************"    #自己注册
    url="http://www.tuling123.com/openapi/api?key=%s&;info=%s"%(appkey,info)
    req=requests.get(url)
    content=req.text
    data=json.loads(content)
    answer=data['text']
    return answer

# 调用showApi的图灵机器人,根据聊天消息返回回复内容
def showRobot(info="",nickName="",imgDir=""):
    my_appId='****'     #自己注册
    my_appSecret='******************'    #自己注册
    r = ShowapiRequest("http://route.showapi.com/60-27", my_appId, my_appSecret)
    r.addBodyPara("userid", nickName)
    if info !="":
        r.addBodyPara("info", info)
    else:
        r.addBodyPara("info", "你好")
    if imgDir !="" :
        r.addFilePara("img", imgDir)
    res = r.post()
    data=json.loads(res.text)
    return data['showapi_res_body']['text']

# 调用茉莉机器人是,根据聊天消息返回回复内容
# 指令:
# 地区天气    上海天气    查询上海的天气预报(市级或县级地区)
# 天气    天气    根据访问IP自动获取天气预报
# @tq您的ip地址    @tq8.8.8.8    查询IP地址为8.8.8.8的天气预报
# @ip您的ip地址    @ip8.8.8.8    查询IP地址为8.8.8.8的位置和经纬度
# ip    ip    查询访问者的IP地址详情
# @qq要查询的QQ号码    @qq123456    查询QQ号码123456的信息
# @lol英雄联盟大区--角色名称    @lol艾欧尼亚--我要超神    查询艾欧尼亚区我要超神的战绩信息
# @sfz身份证号码    @sfz111111111111111111    查询身份证号码公民所在地、生日和性别
# @sjh手机号码    @sjh18888888888    查询手机号码归属地、城市区号和卡的类型
# @cy四字成语    @cy一马当先    【一马当先】的成语接龙
# 笑话    笑话    随机返回一个笑话
# 观音灵签    观音灵签    随机抽取观音灵签
# 月老灵签    月老灵签    随机抽取月老灵签
# 财神爷灵签    财神爷灵签    随机抽取财神爷灵签

def moLi_Robot(question):
    Key='***************'   #自己注册
    Secret='*******'         #自己注册
    url='http://i.itpk.cn/api.php?question=%s&api_key=%s&api_secret=%s'%(question,Key,Secret)
    req=requests.get(url)
    content=req.text
    if question in ['笑话','观音灵签','月老灵签','财神爷灵签']:
        if content.startswith(u'\ufeff'):
            content = content.encode('utf8')[3:].decode('utf8')
        jsondata=json.loads(content)

        # 处理'笑话','观音灵签','月老灵签','财神爷灵签'数据
        if question=='笑话':
            data='%s\n%s'%(jsondata['title'],jsondata['content'])
        elif question=='观音灵签':
            data='签号:%s\n抽中:%s\n签语:%s\n解签:%s\n白话解签:%s\n'%(jsondata['number1'],jsondata['haohua'],jsondata['qianyu'],jsondata['shiyi'],jsondata['jieqian'],)
        elif question=='月老灵签':
            data='签号:%s\n抽中:%s\n诗意:%s\n解签:%s\n注释:%s\n白话解签:%s\n'%(jsondata['number1'],jsondata['haohua'],jsondata['shiyi'],jsondata['jieqian'],jsondata['zhushi'],jsondata['baihua'])
        else:  # 财神爷灵签
            data='签号:%s\n签语:%s\n注释:%s\n解签:%s\n解说:%s\n含义:%s\n婚姻:%s\n事业:%s\n功名:%s\n失物:%s\n出外移居:%s\n六甲:%s\n求财:%s\n交易:%s\n疾病:%s\n诉讼:%s\n运途:%s\n谋事:%s\n生意:%s\n'%(
                jsondata['number1'],jsondata['qianyu'],jsondata['zhushi'],jsondata['jieqian'],jsondata['jieshuo'],jsondata['jieguo'],jsondata['hunyin'],jsondata['shiye'],jsondata['gongming'],jsondata['shiwu'],jsondata['cwyj'],jsondata['liujia'],jsondata['qiucai'],jsondata['jiaoyi'],jsondata['jibin'],jsondata['susong'],jsondata['yuntu'],jsondata['moushi'],jsondata['hhzsy'],
            )
    elif question=='指令':
        data="""指令:
地区天气    \t上海天气\t    查询上海的天气预报(市级或县级地区)\n
天气    \t天气\t    根据访问IP自动获取天气预报\n
@tq您的ip地址\t@tq8.8.8.8\t查询IP地址为8.8.8.8的天气预报\n
@ip您的ip地址\t@ip8.8.8.8\t查询IP地址为8.8.8.8的位置和经纬度\n
ip\tip\t查询访问者的IP地址详情\n
@qq要查询的QQ号码\t@qq123456\t查询QQ号码123456的信息\n
@lol英雄联盟大区--角色名称\t    @lol艾欧尼亚--我要超神\t查询艾欧尼亚区我要超神的战绩信息\n
@sfz身份证号码\t@sfz111111111111111111\t查询身份证号码公民所在地、生日和性别\n
@sjh手机号码    \t@sjh18888888888\t查询手机号码归属地、城市区号和卡的类型\n
@cy四字成语\t@cy一马当先\t【一马当先】的成语接龙\n
笑话    \t笑话\t    随机返回一个笑话\n
观音灵签    \t观音灵签\t    随机抽取观音灵签\n
月老灵签    \t月老灵签\t    随机抽取月老灵签\n
财神爷灵签\t财神爷灵签\t随机抽取财神爷灵签\n
"""
    else:
        data=content
    # return jsondata
    return data

# 根据NickName[]查找UserName[]
def findUserName(toNickName):
    u = []
    for i in toNickName:
        try:
            u1 = itchat.search_friends(i)[0]['UserName']
            u.append(u1)
            print('已将联系人\t',i,'\t加入了聊天机器人的对象')
        except Exception as E:
            print(i,"你没有此联系人")
    print('------------------------------------')
    return u

# 根据群的NickName[]查找UserName[]
def findQunUserName(toQunNickName):
    u = []
    for i in toQunNickName:
        try:
            u1 = itchat.search_chatrooms(i)[0]['UserName']
            u.append(u1)
            print('已将群\t',i,'\t加入了聊天机器人的对象')
        except Exception as E:
            print(i,"你没有此群")
    print('------------------------------------')
    return u

if __name__ == '__main__':
    # 登录发送
    itchat.auto_login(hotReload=True,statusStorageDir='itchat.pkl')
    myUserName=itchat.get_friends(update=True)[0]['UserName']
    myNickName=itchat.get_friends(update=True)[0]['NickName']



    # 对指定的人当机器人
    toSendUserNickName = ['sssss', 'ttttt', 'mmmmm','sssssssssssssssss']
    toRobotUserName = findUserName(toSendUserNickName)

    # 对指定的群当机器人
    toSendQunNickName = ['test','test2']
    toRobotQunUserName = findQunUserName(toSendQunNickName)


    # 使用的机器人
    RobotName=['tuLing','showRobot','moLi_Robot']
    usingRobot=RobotName[2]

    #群机器人
    @itchat.msg_register(TEXT,isGroupChat=True)
    def reply(msg):
        answer=""
        for i in toRobotQunUserName:
            if msg['FromUserName'] == i and msg['ActualUserName'] != myUserName :
                if usingRobot=='tuLing':
                    answer = tuLing(msg['Text'])
                elif usingRobot=='showRobot':
                    answer = showRobot(msg['Text'])
                else:
                    answer = moLi_Robot(msg['Text'])
                # print(answer)
                itchat.send_msg(answer, msg['FromUserName'])
        return


    @itchat.msg_register([TEXT,PICTURE],isFriendChat=True)
    def replyText(msg):
        fromNum=0 #toSendUserNickName[fromNum]给我发送信息
        toNum=0 #判断我要给toSendUserNickName[toNum]发送信息

        for i in toRobotUserName:
            # 判断发送消息的人是你选定的人
            if msg['FromUserName']==i :
                # 传输的文件类型为照片
                if msg['Type']=='Picture':
                    # 判断使用 那个机器人
                    if usingRobot=='showRobot':
                        # 下载照片
                        path =r'.\Info\Picture'
                        try:
                            os.makedirs(path)
                            print("%s 文件夹创建成功" % path)
                        except Exception as e:
                            print("%s 文件夹创建失败,可能已经存在此文件夹" % path)

                        path += r'\%s' % msg['FileName']
                        msg['Text'](path)

                        # 打印信息
                        an = showRobot(imgDir=msg['Text']())
                        print(datetime.datetime.now(), '\n', toSendUserNickName[fromNum], '给 我 :\n\t', msg['FileName'], '\t存储在', path)
                    elif usingRobot=='tuLing':
                        an = tuLing('照片')
                    else:
                        an = moLi_Robot('照片')

                # 传输的是文字
                else:
                    # 判断使用 那个机器人
                    if usingRobot=='tuLing':
                        an = tuLing(msg['Text'])
                    elif usingRobot=='showRobot':
                        an = showRobot(msg['Text'])
                    else:
                        an= moLi_Robot(msg['Text'])

                print(datetime.datetime.now(),'\n',toSendUserNickName[fromNum],'给 我 :\n\t',msg['Text'],'\n')
                print(datetime.datetime.now(),'\n','我 给', toSendUserNickName[fromNum], ':\n\t', an,'\n')
                itchat.send_msg(an,i)
                break
            else:
                fromNum += 1

        # 我自己给上面指定的人发送信息,不是机器人发
        for j in toRobotUserName:
            if msg['ToUserName']==j:
                break
            else:
                toNum += 1

        if msg['FromUserName']==myUserName:
            # 传输的文件类型为照片
            if msg['Type'] == 'Picture':
                print(datetime.datetime.now(),'\n','我 给',toSendUserNickName[toNum],':\n\t',msg['FileName'],'\n')
            else:
                print(datetime.datetime.now(), '\n', '我 给', toSendUserNickName[toNum], ':\n\t', msg['Text'], '\n')

        return

    itchat.run()

  需要注册的机器人:

  

  

  

 

  修改机器人:

  

  修改对那几个朋友使用机器人(这里是你微信对他们的备注):

  

  修改对那几个群使用机器人(这里是你微信上的群的名字):

   

   

  如果是自己对指定的朋友聊天,聊天消息会体现在调试台上,如果是群回复则不会。

  

 

版权

作者:feiquan

出处:http://www.cnblogs.com/feiquan/

版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

大家写文都不容易,请尊重劳动成果~ 这里谢谢大家啦(*/ω\*)

 

  

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python+ITchart实现微信机器

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python+ITchart实现微信机器

这里我主要用了3个机器人,可以切换。  1.图灵机器人  (傻的不行,一直在问别人问题,没有限制)    http://www.tuling123.com  2.showApi上的图灵机器人  (感觉最聪明,可以识别微信表情,英文,中文等,
2023-01-30

Python一行代码实现ChatGPT接入微信机器人

这篇文章主要为大家介绍了Python一行代码实现ChatGPT接入微信机器人示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-03-21

python基于itchat实现微信群消息同步机器人

最近 全栈数据工程师养成攻略 的微信群已经将近500人,开了二群之后为了打通不同微信群之间的消息,花了点时间做了个消息同步机器人,在任意群收到消息时同步到其他群,并且将聊天内容上传至数据库,以供进一步分析、统计和展示。 基本思路是,用 Py
2022-06-04

Python实现企业微信通知机器人的方法详解

这篇文章主要为大家详细介绍了如何使用Python实现对企业微信进行群通知的功能,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
2023-02-07

怎么用一行Python代码实现ChatGPT接入微信机器人

今天小编给大家分享一下怎么用一行Python代码实现ChatGPT接入微信机器人的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧
2023-07-05

使用Python实现微信自动化

Python中可以导入wxpy模块,在电脑上操作控制微信。
2023-01-31

快速实现基于Python的微信聊天机器人示例代码

最近听说一个很好玩的图灵机器人api,正好可以用它做一个微信聊天机器人,下面是实现# test.pyimport requests import itchat #这是一个用于微信回复的库KEY = '8edce3ce905a4c1dbb96
2022-06-04

利用python微信库itchat实现微信自动回复功能

前言 在论坛上看到了用Python登录微信并实现自动签到,才了解到一个新的Python库: itchat 利用Python 微信库itchat,可以实现自动回复等多种功能,好玩到根本停不下来啊,尤其是调戏调戏不懂计算机的,特别有成就感,哈哈
2022-06-04

python怎么实现微信自动发送信息

要实现微信自动发送信息,可以使用Python的第三方库itchat来实现。itchat是一个开源的微信个人号接口,可以通过Python来控制微信的消息发送、接收、登录等功能。首先,你需要安装itchat库。可以使用以下命令在命令行中进行安装
2023-08-31

基于Python实现微信聊天界面生成器

这篇文章主要为大家详细介绍了如何利用Python实现简单的微信聊天界面生成器,文中的示例代码讲解详细,具有一定的借鉴价值,需要的可以参考一下
2023-01-29

Python是如何制作微信机器人

这期内容当中小编将会给大家带来有关Python是如何制作微信机器人,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、环境配置大多数人无法登录网页版,所以饶过它模拟电脑登录,这个模块一定记得安装:pip i
2023-06-22

Python+Appium实现自动抢微信红包

目录环境准备实现思路code环境准备appium环境安卓手机usb数据线python环境实现思路我们收到红包和消息都是自动置顶到第一个,于是我们打开第一个判断是否有红包,没有则隐藏此窗口。如果有则判断红包是否可以领取,如果有则领取红包,否则
2022-06-02

Python+微信接口实现运维报警

说到运维报警,我觉得都可以写个长篇历史来详细解释了报警的前世来生,比如最早报警都是用邮件,但邮件实时性不高,比如下班回家总不能人一直盯着邮箱吧,所以邮件这种报警方式不适合用来报紧急的故障,日常磁盘利用率监控什么的可以用它来报没问题,网站宕机
2022-06-04

基于python实现微信模板消息

我的风格,废话不多说了,直接给大家贴代码了,并在一些难点上给大家附了注释,具体代码如下所示:#!/usr/bin/env python #-*- coding:utf-8 -*- import urllib2,json import dat
2022-06-04

半小时实现基于ChatGPT搭建微信机器人

这篇文章主要为大家介绍了基于ChatGPT搭建微信机器人过程示例详解,半小时就能完成,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-02-15

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录