Python实现CET查分的方法
PythonCET自动查询方法需要用到的python方法模块有:sys、urllib2
本文实例讲述了Python实现CET查分的方法。分享给大家供大家参考。具体实现方法如下:
#!/usr/bin/python
#-*-coding:utf-8-*-
importsys,urllib2
defCetQuery(band,exam_id):
"""CETQueryversion0.2 2009.2.28
AnExerciseProgrambyPT,GZUniversity
AuthorBlog:http://apt-blog.co.cc,WelcometoDropby.
"""
#查询连接
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()
exceptBaseException,e:
print"Errorretrievingdata:",e
return-1
ifnotlen(result):
print"ErrorOccured.Mayberecordnotexisted."
return-1
#解码字符串
result=data.decode("gb2312").encode("utf8")
res_tu=tuple(result.split(','))
score_tu=("听力","阅读","综合","写作","总分","学校","姓名")
print"n*****CET%s成绩清单*****"%(band)
print"-准考证号:%s"%(exam_id)
foriinrange(7):
print"-%s:%s"%(score_tu,res_tu)
print"**************************n"
print"准考证号前一位同学:%sn后两位同学分别是:%s、%s"%(res_tu[-3],res_tu[-2],res_tu[-1])
return0
if__name__=="__main__":
if(len(sys.argv)!=3)or
(sys.argv[1]!='4'andsys.argv[1]!='6')or
(len(sys.argv[2])!=15):
print"Error:程序参数错误,考试类型(4、6),准考证号长度(15位)"
print"nExample:nnCETQuery.py4123456789012345nn"
printCetQuery.__doc__
sys.exit(1)
statue=CetQuery(sys.argv[1],sys.argv[2])
sys.exit(statue)
希望本文所述对大家的Python程序设计有所帮助。