一个CET查分的Python脚本

软件和网站开发以及相关技术探讨
头像
pentie
帖子: 228
注册时间: 2007-08-27 22:03
来自: http://apt-blog.co.cc/

Re: 一个CET查分的Python脚本

#16

帖子 pentie » 2009-02-28 10:16

ptpt52 写了:好像用不了,现在
现在还可用。
头像
pentie
帖子: 228
注册时间: 2007-08-27 22:03
来自: http://apt-blog.co.cc/

Re: 一个CET查分的Python脚本

#17

帖子 pentie » 2009-02-28 10:44

稍微修改了下程序:

1.使用Dictionary来构造HTTP头
2.使用Request的参数改变默认的GET方式(其实也可以,只是模仿了原始网站控件的数据)
3.字符串处理:全部用解码后的byte string输出(此前用unicode串输出,并不是不好,但觉得那一堆tuple里面的u碍眼……)

代码: 全选

#!/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[i], res_tu[i])
    print "**************************\n"
    print "准考证号前一位同学: %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)
头像
xxdaystar
帖子: 225
注册时间: 2006-07-28 14:58
来自: 廣州

Re: 一个CET查分的Python脚本

#18

帖子 xxdaystar » 2009-03-01 0:18

我的綜合30,作文60,全考聽力和閱讀拉分,還比樓主高一些 :em06 考了三次,要畢業了。
我以前買的書翻了都不過10頁,不過看電影多了,聽力自然好了。還有那雙語教學,英文書,閱讀自然提高了~
我也準備學perl和python
头像
jarryson
帖子: 4002
注册时间: 2005-08-14 19:53

Re: 一个CET查分的Python脚本

#19

帖子 jarryson » 2009-03-01 2:12

有点意思。。。嘿嘿。。。我过了。。
回复