英语46级查分的程序

昨天46级能够查分了,研究了一下……
主页面调用了一段javascript,验证码竟然是本地验证的…… 这个不说,其实最后查分就是通过XMLHttpRequest直接查…… 就没什么加密一类的事情……
之后找了一下,好像XMLHttpRequest这个东西还只有Javascript里面才有,python用起来还不方便…… 用FireBug试了一下,因为这个查分系统的请求里面没有数据,所以这个请求其实很简单,拿urllib糊弄一下就好了……
另外关于FireFox里面不能查的问题,貌似是FireFox的XMLHttpRequest在send(null)的时候HTTP头里面没有Content Length字段,其实send(“”)就可以了……
另外,最后这个系统还检查一下Referer,至少不是什么都不干……


 1 import urllib
 2 import urllib2
 3
 4 id = Your ID
 5 t = 4
 6 url = http://cet.99sushe.com/cetscore_99sushe0902.html?t= + t + &id= + id
 7 values = {}
 8 headers = { Referer : http://cet.99sushe.com }
 9
10 data = urllib.urlencode(values)
11 req = urllib2.Request(url, data, headers)
12 response = urllib2.urlopen(req)
13 the_page = response.read()
14 result = the_page.split(,)
15
16 print Listening :,result[0]
17 print Reading   :,result[1]
18 print Mixed     :,result[2]
19 print Writing   :,result[3]
20 print Total     :,result[4]
21 print School    :,result[5].decode(gb2312)
22 print Your Name :,result[6].decode(gb2312)
23 print Name1     :,result[7].decode(gb2312)
24 print Name2     :,result[8].decode(gb2312)
25 print Name3     :,result[9].decode(gb2312)