本文代码来自:Python 实现大连海事校园网登录
今天打开电脑发现之前的登陆脚本挂了,重启也没用,尝试根据报错修改xpath,还是无法定位元素,又重试了其他方法,发现还是无法定位到元素(其实最开始用xpath就是因为其他方法定位失败了),而很巧的是在昨天我的评论区出现了一个老哥给我发了他的方法:Python 实现大连海事校园网登录。
我测试了一下发现确实好用。仔细阅读了一下代码,发现老哥的功底确实好,好几处我认为可以优化或者需要修改的地方在我改完之后都不能用了。仔细研究了原理之后发现我的理解是错的,原本的代码就是最简洁的写法。
# -*- coding:utf-8 -*-
import binascii
import re
import time
import requests
from pyDes import ECB, PAD_PKCS5, des
def des_encrypt(s, key):
"""
DES 加密
:param key: 秘钥
:param s: 原始字符串
:return: 加密后字符串,16进制
"""
secret_key = key
k = des(secret_key, mode=ECB, pad=None, padmode=PAD_PKCS5)
en = k.encrypt(s)
return en # 得到加密后的16位进制密码 <class 'bytes'>
def encrypt(pd, key):
"""
密码加密过程:
1 从认证页面中可获得base64格式的秘钥
2 将秘钥解码成bytes格式
3 输入明文密码
4 通过des加密明文密码
5 返回base64编码格式的加密后密码
:param pd: 明文密码
:param key: 秘钥
:return: 加密后的密码(base64格式)
"""
key