北邮疫情防控通自动填报_python+selenium

  • 搭建环境:python、selenium、chromedriver
  • 编写代码:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
try:
    option = webdriver.ChromeOptions()
    # 设置开发者模式启动,该模式下webdriver属性为正常值
    option.add_experimental_option('excludeSwitches', ['enable-automation'])
    browser = webdriver.Chrome(chrome_options=option)

    browser.get('https://app.bupt.edu.cn/ncov/wap/default/index')
    time.sleep(3)

    # 输入学号密码登陆
    browser.find_elements_by_xpath('//*[@id="app"]/div[2]/div[1]/input')[0].send_keys('学号')
    browser.find_elements_by_xpath('//*[@id="app"]/div[2]/div[2]/input')[0].send_keys('密码')
    browser.find_elements_by_xpath('//*[@id="app"]/div[3]')[0].click() # 点击登陆
    time.sleep(3)

    # 点击获取定位
    browser.find_elements_by_xpath('/html/body/div[1]/div/div/section/div[4]/ul/li[8]/div/input')[0].click()
    time.sleep(3)
    # 点击提交
    browser.find_elements_by_xpath('/html/body/div[1]/div/div/section/div[5]/div/a')[0].click()
    time.sleep(3)
    #点击继续提交
    browser.find_elements_by_xpath('//*[@id="wapcf"]/div/div[2]/div[2]')[0].click()
    time.sleep(3)
    # 点击确定,关闭浏览器
    browser.find_element_by_xpath('//*[@id="wapat"]/div/div[2]/div').click()

    print("上报完成!")
    browser.quit()
except Exception as result:
    with open(r'完整路径\report.log', 'a') as f:
        f.write(str(time.ctime()[4:10]))
        f.write(':\n       早:出现错误-->')
        f.write(str(result))
        f.write('\n')
        browser.quit()
else:
    with open(r'完整路径\report.log', 'a') as f:
        f.write(str(time.ctime()[4:10]))
        f.write(':\n       早:')
        f.write('今日上报完成!\n')

bupt同学只需修改代码中的用户名和密码,以及日志路径即可拿去使用,还可以自己设置浏览器的显示与否。

  • 最后可以在计算机管理中添加定时任务
    北邮疫情防控通自动填报_python+selenium_第1张图片
    北邮疫情防控通自动填报_python+selenium_第2张图片
    以上就是通过selenium实现的自动上报脚本,实际上就是自动模拟了浏览器的操作。其它方法可以参见https://github.com/ipid/bupt-ncov-report.

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