学校健康打卡 python脚本 自动 (暨大)

想法

1,python selenium库,自动化控制浏览器。(python3)
2.想要控制哪款浏览器,需要安装对应的浏览器驱动,python通过selenium,调用驱动,控制浏览器。
例如Chrome浏览器,则需要安装Chrome驱动,将驱动文件置于Path环境变量路径下,即可。

(因为这个网页好像要模拟浏览器才允许访问,所以暂时简单这么搞了)

更具体的说:

1.浏览器驱动安装:

# 1.Chrome地址栏输入,chrome://version/,查看自己Chrome的版本

学校健康打卡 python脚本 自动 (暨大)_第1张图片
# 2.在列表中下载对应版本的驱动文件(下载得到的如果是zip压缩文件,解压缩可得到exe文件),http://chromedriver.storage.googleapis.com/index.html

学校健康打卡 python脚本 自动 (暨大)_第2张图片
# 3.将所下载驱动exe文件放入Python/Lib目录下,并将此目录 添加到环境变量PATH。我的是F:\Python38\Lib

学校健康打卡 python脚本 自动 (暨大)_第3张图片

win+r输入 sysdm.cpl 可以直接到系统属性面板,再点击高级可到设置环境变量处。

学校健康打卡 python脚本 自动 (暨大)_第4张图片

学校健康打卡 python脚本 自动 (暨大)_第5张图片

学校健康打卡 python脚本 自动 (暨大)_第6张图片

2. python库安装:

selenium

pip install selenium

3. 同目录下创建 id+passw.txt 按规则写入学号和密码

学校健康打卡 python脚本 自动 (暨大)_第7张图片

4. python源码:

# pip install selenium
from selenium.webdriver.common.keys import Keys
from selenium import webdriver
import time
import sys
import string


def tick(driver, id, passw):
    driver.get("https://stuhealth.jnu.edu.cn/#/login")
    driver.find_element_by_id('zh').send_keys(id)
    driver.find_element_by_id('passw').send_keys(passw)
    # 登录
    driver.find_element_by_id('passw').send_keys(Keys.ENTER)
    # 等待新页面加载完毕
    time.sleep(3)

    # 填表

    # driver.find_element_by_id('10000').click()
    # 如果页面跳转到新窗口,需要重定位
    # time.sleep(3)
    # search_window = driver.current_window_handle  # 此行代码用来定位当前页面
    # html =driver.page_source
    # print("打印标题")
    # print(driver.title)
    if driver.current_url == 'https://stuhealth.jnu.edu.cn/#/index':
        driver.find_element_by_id('10000').send_keys(Keys.SPACE)
        # 提交
        driver.find_element_by_id('tj').click()
        time.sleep(2)
    if driver.current_url == 'https://stuhealth.jnu.edu.cn/#/index/complete':

        print(id + ',打卡成功!')
    else:
        print(id + ',打卡失败!')


# 使用浏览器驱动,启动Chrome
# 需要下载对应版本的驱动。
# 1.地址栏输入,chrome://version/,查看自己的版本
# 2.在列表中下载对应版本的驱动exe文件,http://chromedriver.storage.googleapis.com/index.html
# 3.将所下载文件放入Python/Lib目录下,并将此目录 添加到环境变量PATH
driver = webdriver.Chrome()
# Firefox
# driver = webdriver.Firefox()
# 浏览器后台运行
# option=webdriver.ChromeOptions()
# option.add_argument('headless') # 设置option
# driver = webdriver.Chrome(chrome_options=option)  # 调用带参数的谷歌浏览器
# 填表

filename = ".\\id+passw.txt"
with open(filename, 'r') as f:
    lines = f.readlines()
    for line in lines:
        if line.startswith('#'):
            continue
        id = line.split(' ')[0]
        passw = line.split(' ')[1]
        tick(driver, id, passw)

driver.close()
sys.exit()

实现结果:

学校健康打卡 python脚本 自动 (暨大)_第8张图片

学校健康打卡 python脚本 自动 (暨大)_第9张图片

你可能感兴趣的:(python,python)