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程序设计有所帮助。