简易小黄鸡程序

   去年人人网上有一只小黄鸡很火,我也试着玩了下,确实挺有意思的。

   到小黄鸡的官网查看一下,原来,就是一聊天机器人,你发送一个消息,然后他给你回复的响应。

  尝试用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的编码,

 

posted @ 2013-03-05 18:26  River Liu  阅读(434)  评论(0)    收藏  举报