Python实现CET查分的方法

1020次阅读  |  发布于5年以前

Python CET自动查询方法需要用到的python方法模块有:sys、urllib2

本文实例讲述了Python实现CET查分的方法。分享给大家供大家参考。具体实现方法如下:

复制代码 代码如下:

!/usr/bin/python

-- coding: utf-8 --

import sys, urllib2
def CetQuery(band, exam_id):
"""CETQuery version 0.2 2009.2.28
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 "Connecting..."  
#构造HTTP头  
header = {'Referer':'http://cet.99sushe.com/'}  
#第二个参数出现则使用post方式提交  
req = urllib2.Request(cet, '', header)  
try:  
    data = urllib2.urlopen(req).read()  
except BaseException, e:  
    print "Error retrieving data:", e  
    return -1  
if not len(result):  
    print "Error Occured. Maybe record not existed."  
    return -1  
#解码字符串  
result = data.decode("gb2312").encode("utf8")  
res_tu = tuple(result.split(','))  
score_tu = ("听力", "阅读", "综合", "写作", "总分", "学校", "姓名")  
print "n***** CET %s 成绩清单 *****" % (band)  
print "-准考证号: %s" % (exam_id)  
for i in range(7):  
    print "-%s: %s" % (score_tu, res_tu)  
print "**************************n"  
print "准考证号前一位同学: %sn后两位同学分别是: %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:nnCETQuery.py 4 123456789012345nn"
print CetQuery.doc
sys.exit(1)
statue = CetQuery(sys.argv[1], sys.argv[2])
sys.exit(statue)

希望本文所述对大家的Python程序设计有所帮助。

Copyright© 2013-2020

All Rights Reserved 京ICP备2023019179号-8