更新注明
由于博主写博客时学校的官网已经更换了,之前写爬虫的网页失效了,因此本教程没有实际图片展示,但希望能帮助到仍然在使用青苹果的高校的同学们。
预期
正好碰上Python课程的期中作业,打算应用所学的爬虫基础,实现对学校官网的爬取,抢课同理,也是可以实现的。这里博主只是想简单测试一下自己所学,于是简单将功能要求在,下载成绩单保存在本地磁盘。
本以为只是简单的明文post,翻车了。通过抓包软件对登录请求分析,发现data中的数据均经过加密处理,看过js之后发现是md5加密,开整!
环境配置
PyCharm
import requests
from bs4 import BeautifulSoup
import json
import hashlib
import re
from PIL import Image
主要代码
该请求使用的是ASP.NET,因此需要将SessionId保存下来,加进构造请求的cookie中
url = "http://jw.qziedu.cn/jwweb/_data/login_home.aspx"
s = requests.session()
response = s.get(url, verify=False)
SessionId = response.cookies['ASP.NET_SessionId'] # 取到SessionId
# print(SessionId)#显示SessionId
ck='ASP.NET_SessionId='+SessionId
print('cookie:'+ck)
下面我构造的登录请求
#构造登录表单
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36',
'Cookie':ck,
'Host':'223.5.5.5',
'Referer':'Referer: http://jw.qziedu.cn/jwweb/_data/login_home.aspx'
}
data = {
'__VIEWSTATE': value,
'dsdsdsdsdxcxdfgfg': md5_1,
'fgfggfdgtyuuyyuuckjg': md5_2,
'Sel_Type': 'STU',
'txt_asmcdefsddsd': name #学号
}
# 提交登录表单
r = s.post(url,headers=headers,data=data)