今天分享使用python在学校教务系统进行抢课中,用户的登陆
这是我们学校教务系统的登陆界面
贼丑的登陆界面,不过不影响我们继续往下。
首先,我通过抓包获取了在登陆时,发送的表单数据:
通过抓包,得知了登陆时使用的时POST请求,
请求的URL为:http://192.168.4.17/student/public/login.asp
以及发送的表单数据为:
"username":" 123456"
"passwd":" 123456"
"login":" (unable to decode value)"
分析数据表单,得知登陆时发送的表单格式:
"username":" " #引号里是登陆账号
"passwd":" " #引号里是登陆密码
"login":" (unable to decode value)" #这个不知道是什么
分析完表单数据,顺便复制了一下用户UA:
"User-Agent":" Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36"
然后我们就开始写代码了:
#coding:utf-8
import urllib
import http.cookiejar #保存cookies用到的模块,不保存cookies可能无法进行之后的操作
url ="http://192.168.4.17/student/public/login.asp" #登陆时请求的URL
postdata =urllib.parse.urlencode({
"username":"*******",
"passwd":"*******",
"login":"(unable to decode value)"
}).encode('utf-8') #这里时登陆时提交的表单,账号密码我手动打码了,用的时候改一下
header = {
"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36"
} #仿造用户UA
req = urllib.request.Request(url,postdata,header) #发送数据包,接受返回的网页
##print(urllib.request.urlopen(req).read().decode('utf-8'))
#自动记住cookie
cj = http.cookiejar.CookieJar()
opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj))
r = opener.open(req)
print(r.read())