云端部署脚本-学校健康打卡

云服务器

选择一款适合自己的目标的服务器,做应用最好资源拉高一些
国内三大主流平台:腾讯云,阿里云,华为云
我的选择是下面这款轻量应用服务器 2核2G

系统选择

开发最好还是用Linux,平台我选择了Ubuntu,(Centos的命令yum实在太麻烦)
PS:如果只是要搭个博客还是阿里自制的Linux平台好,自带wordpress,能省下一堆时间

安装宝塔

Centos安装脚本

yum install -y wget && wget -O install.sh http://download.bt.cn/install/install.sh && sh install.sh

Ubuntu/Deepin安装脚本

wget -O install.sh http://download.bt.cn/install/install-ubuntu.sh && sudo bash install.sh

安装好了会有用户名和密码,在云服务器控制台把8888端口打开

浏览器输入 服务器ip:8888,进入登陆界面
输入用户名密码就能进入宝塔控制界面了(需注册)

可以从文件方便的上传代码资料了
下面有个计划任务,shell默认地址是上图中的地址
需要运行的脚本,文件上传到/www/server/panel
可以定时运行

安装google

下载

wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb

打开安装包位置的终端,输入代码进行安装

sudo dpkg -i google-chrome*; sudo apt-get -f install

运行google需要打开9515,9222端口(上图)

定时脚本

查看版本(google-chrome可换其他软件)

google-chrome --version 

安装chormedriver

要与chrome版本一致
下载:这里下载合适版本
添加环境变量:上传文件到usr/bin并解压

shell定时

注意:ubuntu里python 和pip在命令行为2.x.x版本,运行脚本可用python3,pip3指定3.x.x版本
安装库:pip3 install xxx
定时运行

可在右下角执行
查看日志观察是否有误
编辑更改设置

PS:可用于实现学校健康打卡、上班签到、每日爬虫爬取排行榜,图片、刷水军等一系列脚本

py打卡代码

from selenium import webdriver
from time import sleep
from lxml import etree
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
def clock_in(uname, passwd):
    # 实现无可视化操作
    
    chrome_options  = webdriver.ChromeOptions()
    chrome_options.add_argument("--headless")
    chrome_options.add_argument("--disable-gpu")
    chrome_options.add_argument("--no-sandbox")

    bro = webdriver.Chrome(chrome_options=chrome_options)


    bro.get('http://ids2.just.edu.cn/cas/login?service=http%3A%2F%2Fmy.just.edu.cn%2F')
    print('信息门户加载完成')
    username_btn = bro.find_element_by_id('username')
    password_btn = bro.find_element_by_id('password')
    username_btn.send_keys(uname)
    password_btn.send_keys(passwd)
    login_btn = bro.find_element_by_id('passbutton')
    login_btn.click()
    if '认证信息无效' in bro.page_source:
        print('登录失败,账号密码可能错误')
    else:
        print('登录成功')

    # 信息门户的bug,要返回上一页
    bro.back()
    # 开始点击打卡

    daka_btn = bro.find_element(by=By.CLASS_NAME, value='stars')
    daka_btn.click()
    print('已进入打卡页面')

    # 将旧url更新到打卡的url
    sleep(3)
    n = bro.window_handles  # 获取当前浏览器所有窗口句柄
    # print('当前句柄:', n)
    bro.switch_to.window(n[-1]) # 切换到打卡窗口的句柄


    # 体温数值填入
    tw = bro.find_element_by_id('input_tw')
    tw.send_keys('36.7')
    zwtw = bro.find_element_by_id('input_zwtw')
    zwtw.send_keys('36.4')
    print('温度已填写')

    # 提交
    submit_btn = bro.find_element_by_id('post')
    submit_btn.click()
    str = uname + " 完成"
    print(str)

    sleep(3)
    bro.quit()

if __name__ == '__main__':
    np = open(r"NameAndPassword.txt",encoding='gb18030').read().splitlines()
    # file_context是一个list,每行文本内容是list中的一个元素

    for i in range(1,len(np)+1,2):
        clock_in(np[i],np[i+1])
    # 循环打卡
posted @ 2022-03-12 15:13  InsiApple  阅读(165)  评论(0编辑  收藏  举报