目录

自动上网认证登录脚本过程记录

目录

环境说明

  • CentOS Linux release 7.7.1908 (Core)
  • root账户
  • 深澜校园网上网认证

〇、过程

  1. 安装python
  2. 安装selenium
    • 可能需要安装setuptools
    • 可能需要安装urllib3
  3. 安装chrome
    • 可能缺少依赖,需安装其他软件,见附文
  4. 安装chromedriver
  5. 编写python脚本
  6. 后台运行脚本

一、安装python

系统自带,略

二、安装selenium

  1. 下载源码包 selenium-3.141.0.tar.gz

  2. 上传服务器后,解压文件,并进入到setup.py文件所在目录

tar -zxvf selenium-3.141.0.tar.gz
cd selenium-3.141.0
  1. 安装模块
python setup.py install
  1. 可能会遇到的问题
  • 可能会提示ImportError: No module named setuptools,需要安装setuptools

  • 还有可能提示Could not find suitable distribution for Requirement.parse(‘urllib3’),同样需要下载并安装urllib3-1.25.7.tar.gz

  • 因为下载的源码包为zip格式,centos未自带unzip,这里在win10下解压后,用scp命令递归上传整个文件夹。上传后同样用【python setup.py install】安装即可

scp -r <path_to_setuptools-42.0.2> root@ip:/位置
例
如:scp -r C:\Users\userz\Desktop\setuptools-42.0.2 root@10.129.2.110:/opt
  1. 安装成功可以查看安装模块信息
pip list

三、下载安装chrome

  1. 访问chrome官网,选择Linux版的rpm包下载

  2. 将刚刚下载的 google-chrome-stable_current_x86_64.rpm ,上传到服务器

  3. 安装chrome

rpm -ivh google-chrome-stable_current_x86_64.rpm --nodeps --force
  1. 可能提示缺少依赖,我踩过的坑见文末附文

  2. 查看安装的rpm包

rpm -qa | grep chrome
  1. 查看chrome版本信息
google-chrome --version

四、下载chromedriver

  1. 访问 npmjs.org 镜像站,下载对应版本的chromedriver

  2. 上传到服务器,添加执行权限

    chmod u+x chromedriver
    

五、编写python脚本

cat > conn.py
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import time
import os

username = '学号'  #修改为自己的
password = '密码'  #修改为自己的




while 1:
    now_time = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())
    result = os.system('ping www.baidu.com -c 2')
    if result:
        print now_time + " ping fail"
        try:
            chrome_options = Options()
            chrome_options.add_argument('--headless')
            chrome_options.add_argument('--disable-gpu')
            chrome_options.add_argument('--no-sandbox')     # root用户不加这条会无法运行,但是同时访问一些不安全的网站时,容易受到威胁
            chrome_options.add_argument('--disable-dev-shm-usage')
            chrome_options.add_argument('blink-settings=imagesEnabled=false')
            driver = webdriver.Chrome(executable_path="./chromedriver",chrome_options=chrome_options)

            driver.get('http://10.8.8.8/srun_portal_pc?ac_id=1')
            driver.find_element_by_xpath('//*[@id="login-form"]/div[1]/div/input').send_keys(username)
            driver.find_element_by_xpath('//*[@id="login-form"]/div[2]/div/input').send_keys(password)
            driver.find_element_by_xpath('//*[@id="login-form"]/div[3]/div[1]/button').click()
            time.sleep(5)
            driver.quit()
            print now_time + " login success"
        except:
            print now_time + " login error"
    else:
        print now_time + " ping success"

    time.sleep(600)

六、运行脚本

nohup python conn.py >conn.out 2>&1 &     #后台运行上网脚本  
tail -f conn.out          #查看输出文件

七、结束脚本

kill 进程号

附文

(一)、这里挂载centos everything版本的iso镜像文件作为本地源

#1. 上传iso镜像文件到/opt     CentOS-7-x86_64-Everything-1908.iso
#2. 创建挂载点并挂载镜像文件,命令如下

mkdir /media/centos7
mount -o  loop /opt/CentOS-7-x86_64-Everything-1908.iso   /media/centos7   
#备注: -o是参数,loop是把一个文件当成硬盘分区mount挂着到目录

mount | grep iso			#查看镜像是否挂载成功

#3. 修改yum源的配置文件
cd /etc/yum.repos.d/
ls
mkdir ./bak
mv    ./*.repo   ./bak/
cp ./bak/CentOS-Media.repo  .
vim  CentOS-Media.repo 		#修改配置文件,内容如下
  • CentOS-Media.repo:
[c7-media]
name=CentOS-$releasever - Media
baseurl=file:///media/centos7/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

(二)、清除缓存

yum clean all 
yum repolist

(三)、我遇到的缺少的依赖

error: Failed dependencies:
        /usr/bin/lsb_release is needed by google-chrome-stable-78.0.3904.108-1.x86_64
        libX11-xcb.so.1()(64bit) is needed by google-chrome-stable-78.0.3904.108-1.x86_64
        libX11.so.6()(64bit) is needed by google-chrome-stable-78.0.3904.108-1.x86_64
        libXcomposite.so.1()(64bit) is needed by google-chrome-stable-78.0.3904.108-1.x86_64
        libXcursor.so.1()(64bit) is needed by google-chrome-stable-78.0.3904.108-1.x86_64
        libXdamage.so.1()(64bit) is needed by google-chrome-stable-78.0.3904.108-1.x86_64
        libXext.so.6()(64bit) is needed by google-chrome-stable-78.0.3904.108-1.x86_64
        libXfixes.so.3()(64bit) is needed by google-chrome-stable-78.0.3904.108-1.x86_64
        libXi.so.6()(64bit) is needed by google-chrome-stable-78.0.3904.108-1.x86_64
        libXrandr.so.2()(64bit) is needed by google-chrome-stable-78.0.3904.108-1.x86_64
        libXrender.so.1()(64bit) is needed by google-chrome-stable-78.0.3904.108-1.x86_64
        libXss.so.1()(64bit) is needed by google-chrome-stable-78.0.3904.108-1.x86_64
        libXtst.so.6()(64bit) is needed by google-chrome-stable-78.0.3904.108-1.x86_64
        libappindicator3.so.1()(64bit) is needed by google-chrome-stable-78.0.3904.108-1.x86_64
        libatk-1.0.so.0()(64bit) is needed by google-chrome-stable-78.0.3904.108-1.x86_64
        libatk-bridge-2.0.so.0()(64bit) is needed by google-chrome-stable-78.0.3904.108-1.x86_64
        libatspi.so.0()(64bit) is needed by google-chrome-stable-78.0.3904.108-1.x86_64
        libcairo.so.2()(64bit) is needed by google-chrome-stable-78.0.3904.108-1.x86_64
        libcups.so.2()(64bit) is needed by google-chrome-stable-78.0.3904.108-1.x86_64
        liberation-fonts is needed by google-chrome-stable-78.0.3904.108-1.x86_64
        libgdk-3.so.0()(64bit) is needed by google-chrome-stable-78.0.3904.108-1.x86_64
        libgdk_pixbuf-2.0.so.0()(64bit) is needed by google-chrome-stable-78.0.3904.108-1.x86_64
        libgtk-3.so.0()(64bit) is needed by google-chrome-stable-78.0.3904.108-1.x86_64
        libpango-1.0.so.0()(64bit) is needed by google-chrome-stable-78.0.3904.108-1.x86_64
        libpangocairo-1.0.so.0()(64bit) is needed by google-chrome-stable-78.0.3904.108-1.x86_64
        libxcb.so.1()(64bit) is needed by google-chrome-stable-78.0.3904.108-1.x86_64
        wget is needed by google-chrome-stable-78.0.3904.108-1.x86_64
        xdg-utils is needed by google-chrome-stable-78.0.3904.108-1.x86_64
  • 对应安装的软件
yum install redhat-lsb wget libXScrnSaver
yum install at-spi2-atk -y
yum install -y libgtk*
yum install -y libX11-devel --nogpg
yum install -y redhat-lsb-core-4.0-7.el6.centos.x86_64
yum install -y gtk2 gtk2-devel gtk2-devel-docs
yum install -y cmake gcc gcc-c++ gtk+-devel gimp-devel gimp-devel-tools gimp-help-browser zlib-devel libtiff-devel libjpeg-devel libpng-devel gstreamer-devel libavc1394-devel libraw1394-devel libdc1394-devel jasper-devel jasper-utils swig python libtool nasm
yum -y install liberation-fonts
yum install libappindicator-gtk3
← 返回技术