昨天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‘)
你也开始研究这个了?
To Roy: 研究一下玩玩而已……