第二页有小修改的0.2版:
1.使用Dictionary来构造HTTP头
2.使用Request的参数改变默认的GET方式(其实GET也可以,只是模仿了原始网站控件的数据)
3.字符串处理:全部用解码后的byte string输出(此前用unicode串输出,并不是不好,但觉得那一堆tuple里面的u碍眼……)
还有就是研究了Python和Java的中文问题:http://apt-blog.co.cc/archives/91.html
查分也有Java版的,在我博客:http://apt-blog.co.cc/archives/89.html
*******
折腾了一个中午的结果(此前我连Python的if、函数定义都不会),Python确实名副其实的易学易用。
代码如下:
代码: 全选
#!/usr/bin/python
#coding=UTF-8
import sys, urllib2
def CetQuery(band, exam_id):
"""CETQuery version 0.1 2009.2.24
An Exercise Program by PT, GZ University
Author Blog: http://apt-blog.co.cc , Welcome to Drop by.
"""
cet = "http://cet.99sushe.com/cetscore_99sushe0902.html?t=" + band + "&id=" + exam_id
print "Ready..."
req = urllib2.Request("http://cet.99sushe.com/")
fd = urllib2.urlopen(req)
fd.close()
print "Connecting..."
req = urllib2.Request(cet)
req.add_header('Referer','http://cet.99sushe.com/')
try:
data = urllib2.urlopen(req, '').read(100)
except urllib2.URLError, e:
print "Error retrieving data:", e
return -1
result = data.decode("gb2312")
if not len(result):
print "Error Occured. Maybe record not existed."
return -1
res_tu = tuple(result.split(','))
score_tu = (u"听力", u"阅读", u"综合", u"写作", u"总分", u"学校", u"姓名")
print "\n***** CET %s 成绩清单 *****" % (band)
print "-准考证号: %s" % (exam_id)
for i in range(7):
print "-%s: %s" % (score_tu[i], res_tu[i])
print "**************************\n"
print u"准考证号前一位同学: %s\n后两位同学分别是: %s、%s" % (res_tu[-3], res_tu[-2], res_tu[-1])
return 0
if __name__ == "__main__":
if (len(sys.argv) != 3) or \
(sys.argv[1] != '4' and sys.argv[1] != '6') or \
(len(sys.argv[2]) != 15):
print "Error: 程序参数错误,考试类型(4、6),准考证号长度(15位)"
print "\nExample:\n\nCETQuery.py 4 123456789012345\n\n"
print CetQuery.__doc__
sys.exit(1)
statue = CetQuery(sys.argv[1], sys.argv[2])
sys.exit(statue)
apt-blog.co.cc PT作品