疫情自动填报修改版(增加微信提醒功能)

由于网络延迟等原因,不能保证每次填报都能够成功。本次修改在源代码基础上添加Server酱微信推送功能,方便而后出错检查。
一、第一部分(未作修改且暂时仅适配linux端):

import time
# 本地Chrome浏览器的静默模式设置:
from selenium import  webdriver #从selenium库中调用webdriver模块
from selenium.webdriver.chrome.options import Options # 从options模块中调用Options类

def yqtb_nwpu():
    chrome_options = Options()
    chrome_options.add_argument('--no-sandbox')
    chrome_options.add_argument('--disable-dev-shm-usage')
    chrome_options.add_argument('--headless')
    driver = webdriver.Chrome(options=chrome_options)
    driver.get('https://uis.nwpu.edu.cn/cas/login?service=https%3A%2F%2Fecampus.nwpu.edu.cn%2Fportal-web%2Fj_spring_cas_security_check')#转到翱翔门户登陆页面
    time.sleep(1)

    username=driver.find_element_by_id('username')
    username.clear()
    username.send_keys('这里填你的学号')#抓取用户名栏并输入学号
    password=driver.find_element_by_id('password')
    password.clear()
    password.send_keys('这里填你的密码')#抓取密码栏并输入密码
    driver.find_element_by_name('submit').click()#抓取登录按钮并点击
    time.sleep(1)

    butt=driver.find_element_by_name('疫情每日填报')
    driver.execute_script("arguments[0].click();", butt)#获取并点击疫情填报的按钮
    time.sleep(1)

    all_handles = driver.window_handles
    driver.switch_to.window(all_handles[1])
    driver.find_element_by_class_name('icon-shangbao1').click()
    time.sleep(1)

    driver.find_element_by_class_name('weui-btn_primary').click()#抓取提交按钮#提交
    sub2=driver.find_element_by_id('brcn')
    driver.execute_script("arguments[0].click();", sub2)
    driver.find_element_by_id('save_div').click()

第二部分(增加微信提醒功能):

import requests
#引入requests

def notify():
    api = "https://sctapi.ftqq.com/**YourSendKey**.send"
    #YourSendKey是Server酱提供的
    title = "填报成功"
    content = "疫情填报成功了呦"
    data = {
    "text":title,
    "desp":content
    }
    req = requests.post(api,data = data)

此部分增加微信提醒功能,Server酱SendKey获取方法如下:

https://sct.ftqq.com/

第三部分:

import schedule
#引入schedule


def job():
    yqtb_nwpu()
    notify()   #填报成功时推送

#schedule.every(10).minutes.do(job)       #部署每10分钟执行一次job()函数的任务
#schedule.every().hour.do(job)            #部署每×小时执行一次job()函数的任务
schedule.every().day.at("10:30").do(job) #部署在每天的10:30执行job()函数的任务
#schedule.every().monday.do(job)          #部署每个星期一执行job()函数的任务
#schedule.every().monday.at("23:41").do(job)#部署每周六的23:07执行函数的任务

while True:
    schedule.run_pending()
    time.sleep(4)    
#以上都是检查部署的情况,如果任务准备就绪,就开始执行任务。

以上是本次代码的修改。

上一篇:每日3词 2021-03-03【rate】【young】【schedule】


下一篇:1. MongoDB 安装和启动