今天模拟登陆了下川农教务网,发现改版了,改的更简单了!改版后提交表单时密码不再需要加密,也就是密码直接明文传输,真不知道学校管理员怎么想的!改版后多了个sign选项,是个变化值,在网页中找到其对于的sign的值即可,以下是代码:
import requests
import re
from lxml import etree
def log_scau(id,pwd):
#本代码共分为2部分
session=requests.Session()#创建会话连接,好处是会自动提交cookie,大大节省精力和代码量
index = session.get('http://jiaowu.sicau.edu.cn/web/web/web/index.asp')
#第一部分,准备post提交的数据
index.encoding = 'gb2312'
seletor=etree.HTML(index.text)
sign = seletor.xpath("//input[@name='sign']/@value") #利用xpath找到sign的值
data={ #需要提交的数据
'user': id,
'pwd': pwd,
'lb': 'S',
'submit': '',
'sign': sign
}
#第二部分,尝试登陆
post_url='http://jiaowu.sicau.edu.cn/jiaoshi/bangong/check.asp' #验证密码的网站
try:
session.post(post_url, data=data) #先登陆验证密码网站
data=session.get('http://jiaowu.sicau.edu.cn/xuesheng/bangong/main/index1.asp')#跳转到个人主页
data.encoding='gb2312'
name=re.compile('<td width="99" align="left">(.*)</td>').findall(data.text) #正则匹配你的名字
print('欢迎你,'+name[1]) #输出欢迎你,xxx
except Exception as e:
print('登陆失败')
id=input('输入你的账号:\n')
pwd=input('输入你的密码:\n')
log_scau(id,pwd)