跟着鬼哥学爬虫-10-python微信-5-加上了人工智能回复!

来源:互联网 发布:松下网络摄像机软件 编辑:程序博客网 时间:2024/05/24 05:34

跟着鬼哥学爬虫-10-python微信-5-加上了人工智能回复!


其实人工智能回复,现在网上有很多开源的机器学习,AI学习的框架,但是最重要的一点就是没有语料,也就是没有相互回答的数据内容。


所以这个时候,我们就要想用一下其他开源的接口。


于是,这里我们用的是小黄鸡的接口,也就是simsim。


但是它现在变成了收费的版本,免费只可以用7天的,所以这里我找到了另外国内一个网站支持小黄鸡接口的。


http://www.xiaodoubi.com/simsimiapi.php?msg=


直接通过网址的get请求,就可以获取得到相应的数据了,所以往下看代码吧。



#我定义的机器人的自动回复def getAutoRobotReply(msg):    text1=msg['Text'][8:].strip()    if not re.match(ur"^[0-9a-zA-Z\s\u4e00-\u9fa5]+$", text1):        return '@' + msg['ActualNickName']+' 请发中文,英文,其他正常字符,摸摸大'    txt = urllib.urlencode({'msg': text1})    if len(text1)<100:        url = 'http://www.xiaodoubi.com/simsimiapi.php?' + txt        print url        response = urllib2.urlopen(url)        html = response.read()        return '@' + msg['ActualNickName']+' '+html    else :        return '我不懂你在说什么'



这里,是作为群聊回复的机器人自动回复。


text1=msg['Text'][8:].strip()

这一行代码,也就是我判断了是否有人圈我,也就是 @听鬼哥说故事 ,正常消息后面有一个空格,所以我判断了8个字符,截取后面的数据。


然后就是这一行代码了:

if not re.match(ur"^[0-9a-zA-Z\s\u4e00-\u9fa5]+$", text1):



这一行代码判断的是不是发送的消息为中文,英文,数字。这里特殊字符,表情都不识别可能会造成程序崩溃,所以加上的这个正则表达式。


下面是url编码,这里不用说了,就是怕有时候访问网址中出现问题,做的处理。


    if len(text1)<100:

这里大家肯定会很疑惑,为什么判断字符数字小于100。原因就是因为有时候我们用的这个接口,如果输入太大字符的话,将无法识别,或者超过链接时间,所以这里加上字符100一般就是我们正常聊天的内容。毕竟发短信的话,都是72的字符算一条短信的。


return '@' + msg['ActualNickName']+' '+html

这里就是返回数据,谁发送的消息,我们加上了@和ActualNickName,也就是在我们群里备注的名称。


效果图再贴一下:



0 0
原创粉丝点击