2009年6月四六级考试查分程序

标签:Python

本想像去年一样用PHP来做,结果换了服务器,fsockopen好像出问题了,只好做成单机版了=。=

可以连续查分,自动识别英语四级、英语六级、日语四级、日语六级、德语四级、俄语四级和法语四级(只有CET4/6进行了格式化,其余没有准考证号,没法测试),命令如下:
cet.py 310020091204113 310020091204114 310020091204115 355031091102626 1234567890

结果如下:
姓名:张俊
学校:上海交通大学
考试类别:英语六级
准考证号:310020091204113
总分:420
听力:127
阅读:197
综合:39
写作:57

姓名:许雯
学校:上海交通大学
考试类别:英语六级
准考证号:310020091204114
总分:0
听力:0
阅读:0
综合:0
写作:0

姓名:张涛
学校:上海交通大学
考试类别:英语六级
准考证号:310020091204115
总分:341
听力:81
阅读:156
综合:19
写作:85

姓名:高平
学校:仰恩大学
考试类别:英语四级
准考证号:355031091102626
总分:409
听力:123
阅读:150
综合:47
写作:89

准考证号错误:1234567890

代码如下:
# -*- coding: gbk -*-

from urllib2 import Request, urlopen
from re import compile

pattern = compile(r'^\d{6}091[1-579]\d{5}$')
type = {
    '1': '英语四级',
    '2': '英语六级',
    '3': '日语四级',
    '4': '日语六级',
    '5': '德语四级',
    '7': '俄语四级',
    '9': '法语四级',
}

def query(id):
    if pattern.match(id):
        result = urlopen(Request('http://cet.99sushe.com/getscore.html', data='id=' + id, headers={'Referer': 'http://cet.99sushe.com/'})).read()
        if result:
            if id[9] <= '2':
                result = result.split(',')
                if len(result) == 7:
                    print '姓名:%s\n学校:%s\n考试类别:%s\n准考证号:%s\n总分:%s\n听力:%s\n阅读:%s\n综合:%s\n写作:%s\n' % (
                        result[6], result[5], type[id[9]], id, result[4], result[0], result[1], result[2], result[3]
                    )
                else:
                    print '准考证号错误:%s\n' % id
            else:
                print '考试类别:%s\n准考证号:%s\n成绩信息:%s\n' % (type[id[9]], id, result)
        else:
            print '准考证号错误:%s\n' % id
    else:
        print '准考证号错误:%s\n' % id

if __name__ == '__main__':
    from sys import argv
    if len(argv) >= 2:
        for id in argv[1:]:
            query(id)
    else:
        print u'''使用方式:
    cet.py 准考证号1 [准考证号2] [准考证号3] ...'''

注:
查分信息来自99宿舍
准考证号来自沪江论坛

1条评论 你不来一发么↓ 顺序排列 倒序排列

    向下滚动可载入更多评论,或者点这里禁止自动加载

    想说点什么呢?