去年人人网上有一只小黄鸡很火,我也试着玩了下,确实挺有意思的。
到小黄鸡的官网查看一下,原来,就是一聊天机器人,你发送一个消息,然后他给你回复的响应。
尝试用python实现一个简单的小黄鸡聊天程序,下面为代码:
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 4 import urllib 5 import urllib2 6 import sys 7 8 def main (): 9 import traceback 10 sys.stdout.write("Hello, I'm xiaohuangji. Enter Ctrl-C or " 11 "Ctrl-Break to quit.\n") 12 13 url = "http://0.hustac.duapp.com/simsimi.php" 14 15 while True: 16 try: 17 #sys.stdout.write("@xiaohuangji: ") 18 #question = sys.stdin.readline().strip('\n') 19 question = raw_input("@xiaohuangji: ") 20 21 q = url+'?'+ urllib.urlencode( 22 {'msg':question.decode('gb18030').encode('utf-8')}) 23 req = urllib2.Request(q) 24 response = urllib2.urlopen(req) 25 print "xiaohuangji: ", 26 print response.read().decode('utf-8').encode('gb18030') 27 except : 28 print "except occur" 29 traceback.print_exc() 30 31 if __name__ == '__main__': 32 try: 33 main() 34 except KeyboradInterrupt: 35 sys.stdout.write("Bye!\n")
因为官方提供的API需要申请key值,我就使用了网友提供的URL,照样可以完成任务,不过有时会输出“ Unauthorized access!.”
代码是python2.7 中运行正常,因代码简单,就不给出运行截图了。
说明:代码中涉及的编码需要根据系统的编码来确定。
如:windows 7 下 question.decode('gb18030').encode('utf-8')是将从程序运行输入的字符转换成utf8的编码,