一个CET查分的Python脚本

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

一个CET查分的Python脚本

#1

帖子 pentie » 2009-02-24 20:36

CETQuery
CETQuery
欢迎到我博客瞧瞧(有代码渲染效果):http://apt-blog.co.cc/archives/86.html

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

还有就是研究了Python和Java的中文问题:http://apt-blog.co.cc/archives/91.html

查分也有Java版的,在我博客:http://apt-blog.co.cc/archives/89.html

*******


折腾了一个中午的结果(此前我连Python的if、函数定义都不会),Python确实名副其实的易学易用。

代码如下:

代码: 全选

#!/usr/bin/python
#coding=UTF-8

import sys, urllib2

def CetQuery(band, exam_id):
    """CETQuery version 0.1  2009.2.24
    
    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 "Ready..."
    
    req = urllib2.Request("http://cet.99sushe.com/")
    fd = urllib2.urlopen(req)
    fd.close()

    print "Connecting..."

    req = urllib2.Request(cet)
    req.add_header('Referer','http://cet.99sushe.com/')
    
    try:
        data = urllib2.urlopen(req, '').read(100)
    except urllib2.URLError, e:
        print "Error retrieving data:", e
        return -1

    result = data.decode("gb2312")

    if not len(result):
        print "Error Occured. Maybe record not existed."
        return -1

    res_tu = tuple(result.split(','))
    score_tu = (u"听力", u"阅读", u"综合", u"写作", u"总分", u"学校", u"姓名")

    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 u"准考证号前一位同学: %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)



apt-blog.co.cc PT作品
上次由 pentie 在 2009-02-28 10:49,总共编辑 1 次。
头像
pcbird
帖子: 2337
注册时间: 2008-12-19 13:44
来自: 东8区

Re: 一个CET查分的Python脚本

#2

帖子 pcbird » 2009-02-24 20:45

:em20 我的挂了

代码: 全选

 
       \   ,__,
        \  (oo)____
           (__)    )\
              ||--|| *  
 
funneian
帖子: 199
注册时间: 2006-06-05 17:53
来自: 四川德阳

Re: 一个CET查分的Python脚本

#3

帖子 funneian » 2009-02-24 21:35

这样就好了,不用花那冤枉的时间去给恶心的网站制造利润!
头像
sammysun
帖子: 4088
注册时间: 2007-12-08 23:33
来自: SCUT-guangzhou

Re: 一个CET查分的Python脚本

#4

帖子 sammysun » 2009-02-25 9:53

非常好
不过我挂了 :em24
头像
mawith
帖子: 1288
注册时间: 2007-10-21 16:41
来自: GD

Re: 一个CET查分的Python脚本

#5

帖子 mawith » 2009-02-25 12:30

funneian 写了:这样就好了,不用花那冤枉的时间去给恶心的网站制造利润!

严重同意,那网站真的是超恶心。。。 :em31 :em31 :em31 :em31 :em31 :em31
吼吼
头像
friend.ethan
帖子: 687
注册时间: 2008-05-13 20:40
来自: 江南西道

Re: 一个CET查分的Python脚本

#6

帖子 friend.ethan » 2009-02-25 13:07

我说怎么一开始进不去呢
非常欣赏楼主的精神那~这个脚本不错~CET6我考了三次,中间那次过了~另外两次一次差3分一次1分~见鬼了~
头像
yy890521
帖子: 580
注册时间: 2008-11-09 18:07
来自: SCU

Re: 一个CET查分的Python脚本

#7

帖子 yy890521 » 2009-02-25 13:17

我六级也挂了 :em21 :em21
。。。。。。。。感觉好山寨。。。。。。。。。
头像
xiooli
帖子: 6956
注册时间: 2007-11-19 21:51
来自: 成都
联系:

Re: 一个CET查分的Python脚本

#8

帖子 xiooli » 2009-02-25 13:41

唉,这些可怜孩子。。。 :em06
头像
Jarson
帖子: 2371
注册时间: 2008-07-21 9:44
来自: 深圳
联系:

Re: 一个CET查分的Python脚本

#9

帖子 Jarson » 2009-02-25 16:18

俺的CET 6 也挂了 :em20
赞LZ,很强大的脚本。
python真的这么容易学,说得俺心痒痒的 :em01
头像
yy890521
帖子: 580
注册时间: 2008-11-09 18:07
来自: SCU

Re: 一个CET查分的Python脚本

#10

帖子 yy890521 » 2009-02-25 22:32

fhc2007 写了:俺的CET 6 也挂了 :em20
赞LZ,很强大的脚本。
python真的这么容易学,说得俺心痒痒的 :em01
受LZ 的诱惑开始学python了
刚刚上路,感觉很好,很轻松。
就是有点不适应它严格的对齐规则
。。。。。。。。感觉好山寨。。。。。。。。。
头像
ptpt52
帖子: 717
注册时间: 2008-07-27 8:51
系统: Ubuntu/Windows
来自: 广西玉林|广东深圳
联系:

Re: 一个CET查分的Python脚本

#11

帖子 ptpt52 » 2009-02-26 8:20

好像用不了,现在
narky
帖子: 42
注册时间: 2006-12-13 22:20

Re: 一个CET查分的Python脚本

#12

帖子 narky » 2009-02-26 21:33

yy890521 写了:
fhc2007 写了:俺的CET 6 也挂了 :em20
赞LZ,很强大的脚本。
python真的这么容易学,说得俺心痒痒的 :em01
受LZ 的诱惑开始学python了
刚刚上路,感觉很好,很轻松。
就是有点不适应它严格的对齐规则
习惯就好了。前途一片光明
头像
想入非非
帖子: 8078
注册时间: 2008-07-14 22:42
来自: Beijing
联系:

Re: 一个CET查分的Python脚本

#13

帖子 想入非非 » 2009-02-27 0:19

去年过了。。。不过还是很有意义的脚本,收藏一个 :em06
Ubuntu User
头像
princelai
帖子: 920
注册时间: 2007-01-06 21:00
联系:

Re: 一个CET查分的Python脚本

#14

帖子 princelai » 2009-02-27 1:16

很好,我也挂了

不过更喜欢python了 :em03
头像
pentie
帖子: 228
注册时间: 2007-08-27 22:03
来自: http://apt-blog.co.cc/

Re: 一个CET查分的Python脚本

#15

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

yy890521 写了:
fhc2007 写了:俺的CET 6 也挂了 :em20
赞LZ,很强大的脚本。
python真的这么容易学,说得俺心痒痒的 :em01
受LZ 的诱惑开始学python了
刚刚上路,感觉很好,很轻松。
就是有点不适应它严格的对齐规则
我可喜欢它的对齐了!终于可以脱离那种C风格的大括号~~

我就用gedit写,除了删除缩进稍有点麻烦外,已经完全足够了……如果有个对python支持好点的编辑器,这很好解决
回复