python 几行代码实现自动回复功能

今天发现python一个很好玩的模块 itchat ,可以很简单就实现一个自动回复    话不多说  上代码:

import itchat
import requests
import re
import sys

reload(sys)
sys.setdefaultencoding('utf8')


# 抓取网页
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):
    print msg
    # 当消息不是由自己发出的时候
    # if not msg['FromUserName'] == Name["Jestiao"]:
    # 回复给好友
    url = "http://www.tuling123.com/openapi/api?key=b6a58f77524e49f1ad0c15274142dd53&info="
    url = url + msg['Text']
    html = getHtmlText(url)

    message = re.findall(r'"text":".*?"', html)

    reply = eval(message[0].split(':')[1])
    print reply ,'[]'
    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()

还有一个  自行观看:

#!/usr/bin/python3
# -*- coding: utf-8 -*-
# @Author  : nanyu
# @File    : 111.py
# @Time    : 2019/4/17 14:14
# @Software: PyCharm
import itchat
import time
global num
global lis
# @itchat.msg_register(itchat.content.TEXT) #模块自带装饰器  可根据需要自行百度
@itchat.msg_register(itchat.content.TEXT, isGroupChat=False)  #针对群聊
def text_reply(msg):
    print msg  #消息所有内容
    bb=msg.get('User').get('NickName') # 网名
    # if msg.get('ActualNickName') == 'xxx':  针对群聊
    #     return u'你可能不信 这是自动回复! 但是这确实是自动回复'
    if msg.get('User').get('RemarkName') == u'XXX': #备注  根据不同的人  回复不同消息
        global num1, lis1
        if num1 == len(lis1):
            lis1.append(u'你可能不信 这是自动回复! 但是这确实是自动回复')
            lis1.append(u'啥  不信  我他妈 ')
            lis1.append(u'你的网名:' + msg.get('User').get('NickName'))  #获取网名
            lis1.append(u'你的个性签名:' + msg.get('User').get('Signature'))  #获取个性签名  更多信息 可从ms查看
            sex = u'' if msg.get('User').get('sex') == 1 else u''
            lis1.append(u'性别:' + sex)
            lis1.append(u'你所在城市:' + msg.get('User').get('City'))
            lis1.append(u'咋样信了吧 小样')
            lis1.append(u'告辞!!')
            lis1.append(u'家境贫寒告辞')
        b = lis1[0]
        del lis1[0]
        return b
    elif msg.get('User').get('NickName') == u'xx':
        global num2, lis2
        if num2 == len(lis2):
            lis2.append(u',你可能不信 这是自动回复! 但是这确实是自动回复')
            lis2.append(u'啥  不信  我他妈 ')
            lis2.append(u'你的网名:' + msg.get('User').get('NickName'))
            lis2.append(u'你的个性签名:' + msg.get('User').get('Signature'))
            sex = u'' if msg.get('User').get('sex') == 1 else u''
            lis2.append(u'性别:' + sex)
            lis2.append(u'你所在城市:' + msg.get('User').get('City'))
            lis2.append(u'咋样信了吧 小样')
            lis2.append(u'告辞!!')
            lis2.append(u'家境贫寒告辞')
        b = lis2[0]
        del lis2[0]
        return b
    
    # else:
    #     return u'你可能不信 这是自动回复! 但是这确实是自动回复'

itchat.auto_login()
itchat.run()

运行后会生成一个二维码  扫码登陆  自动回复就搞好了  可以玩玩吆

原文地址:https://www.cnblogs.com/nanyu/p/10724944.html