Linux服务器连接校园网

469 阅读1分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第1天,点击查看活动详情

Linux服务器连接校园网

流程

  • 安装图形化界面
  • 安装python及相关包
  • 安装浏览器
  • 安装浏览器驱动
  • 编写脚本

安装图形化界面

之前也想尝试通过terminal模拟发送登录请求,但是比较尝试了几种方式都失败了,还是安装了图形化界面,安装图形化界面的教程很多就不介绍了。

安装python及selenium包

这个包是用来模拟控制浏览器的

用anaconda 或者 pip都能装

安装浏览器

在服务器上安装浏览器,这里用的Firefox,Chrome 也行selenium有对应的方法。

安装浏览器驱动

Firefox驱动下载地址

github.com/mozilla/gec…

下载对应操作系统的即可

chmod +x geckodriver #添加可执行权限
sudo mv geckodriver /usr/bin/ # 移动到系统环境路径下

编写脚本

# connect_net.py
import argparse
​
from selenium import webdriver
import time
​
def login_with_userInfo(user:str,pwd:str):
    options = webdriver.FirefoxOptions()
    options.add_argument('--no-sandbox')
    options.add_argument('--disable-dev-shm-usage')
    options.add_argument('--headless')
    driver = webdriver.Firefox(options=options)
​
    driver.get(url='https://login.hdu.edu.cn/')
    time.sleep(2)
    usernameInput = driver.find_element(value='username')
    # usernameInput = driver.find_element_by_id('username')
    usernameInput.clear()
    usernameInput.send_keys(user)
    passwdInput = driver.find_element(value='password')
    # usernameInput = driver.find_element_by_id('username')
    passwdInput.clear()
    passwdInput.send_keys(pwd)
    submitBtn = driver.find_element(value='login-account')
    submitBtn.click()
​
if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument('--username', default=None, type=str,
                        help='The file of the hyper parameters.')
    parser.add_argument('--password', default='train', type=str,
                        help='The phase of module.')
    args_parser = parser.parse_args()
    login_with_userInfo(user=args_parser.username, pwd=args_parser.password)
​

connect_net.sh

#!/usr/bin/env bash
USERNAME=""
PASSWORD=""
python connect_net.py --username ${USERNAME} --password ${PASSWORD}

运行脚本

bash connect_net.sh

总结

逻辑比较简单,用python调浏览器,get到用户名和密码框往里填值,之后调用登录的click就行。