ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2021-03-26 20:29:33  阅读:338  来源: 互联网

标签:填报 schedule 微信 driver job options 修改版 element find


由于网络延迟等原因,不能保证每次填报都能够成功。本次修改在源代码基础上添加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)    
#以上都是检查部署的情况,如果任务准备就绪,就开始执行任务。

以上是本次代码的修改。

标签:填报,schedule,微信,driver,job,options,修改版,element,find
来源: https://blog.csdn.net/weixin_43058575/article/details/115254120

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有