驾校系统web端刷课想法

Background:

学车好累,要考四个科目,修好多学时;冬天学车惨无人道,早五点半起床,伸手不见五指;帝都学车的人好多,提前一周放号抢起来简直丧心病狂,与秒杀春节火车票没啥区别,服务器都挤爆了。

Methods:

方法就是回去攒积人品和练习反应速度,炉火纯青之时,也就是学成之日→→ →→。
还有方法就是学习抢火车票插件的有余票提示,因为总会有人临时有事退约,时不时的登陆查看太伤神,也不是21世纪青年的作风。

WorkFlow:

1.Python-Urllib2模拟浏览器登陆
2.下载登陆后约车页面信息
3.对信息进行正则化表达式匹配
4.定时刷新捕捉,并判断是否在登陆状态
5.符合要求通知/符合要求自动提交

Code:[状态:未完成4,5]

1.模拟登陆(环境python2.7.8+Pydev for Eclipse)
以远大页面为例,是asp.net页面,打开浏览器登录页面,F12调出开发者工具,找到Network栏,刷新一下页面,筛选出POST方法的页面,并判断帐号提交页。分析cookies,喂给对应项。如下面code,模拟登录页面。不知道为什么,明明预留了验证码校验的和产生页,给拿掉了,这方便了登录和刷新了,要是有验证码的话,自动登录还需要验证码识别,不知道大牛博客里说的借助360火车票识别验证码的那个端口可不可行,这里不管了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
Created on 2015115
@author: ZH
'''
# -*- coding: utf-8 -*-
'''

Urllib2 excercise 训练
'''
import urllib,urllib2,cookielib

# NAME=raw_input('input UserName:')
# PASSWORD=raw_input('input Password:')

##函数体##
def YDJXLogin(url,user,password):
login_page = 'http://yuanda.bjxueche.net/Login.aspx' #以远大驾校页面测试
cj = cookielib.CookieJar()
opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
#reqlg = urllib2.Request(url=login_page)
opener.addheaders= [('Accept','text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8')]
opener.addheaders= [('Referer', 'http://yuanda.bjxueche.net/Login.aspx')]
#模拟firefox浏览器登录
opener.addheaders = [('User-Agent', 'Mozilla/5.0 (Windows NT 6.1; rv:18.0) Gecko/20100101 Firefox/18.0')]
para = urllib.urlencode({"__VIEWSTATE":"/wEPDwUKMTg0NDI4MDE5OGRkFUZOE3C7QQL4pJ/OooIN7IVnK5Qfznhym5mN84V5JNQ=",
"__EVENTVALIDATION":"/wEWBgKyrJC6AwKl1bKzCQK1qbSRCwLoyMm8DwLi44eGDAKAv7D9CmhsXW9MljUvafu1DHCUaQFrdAWsE0NBXcwobLtWNjsS",
"txtUserName":user,
"txtPassword":password,
"txtIMGCode":"",
"BtnLogin":"登 录",
"rcode":""
})
opener.open(login_page, para)
op = opener.open(url)
data = op.read()
return data

print YDJXLogin("http://yuanda.bjxueche.net/index.aspx",370xxxxxxxxxxxxxxx,xxxxxx) #以远大驾校页面测试

2.之后难题待攻克,有时间再研究。纯属爱好,不恶意刷新。如有那啥,及时删除。