Dorado's host
首页
日常
追番
随笔
工作
技术杂项
开源项目
学习
java基础
mit 6.S081
算法
写题目
学知识
友链
留言
关于我
登录
首页
日常
追番
随笔
工作
技术杂项
开源项目
学习
java基础
mit 6.S081
算法
写题目
学知识
首页
›
开源项目
›
每日一报自动点击脚本
每日一报自动点击脚本
2020-09-15 20:18
1745
0
疫情之后每天都要每日一报,但是人一般都没有多大的问题,所以每天做这些机械的操作,不如写一个小脚本来完成。 本脚本使用Python的Webdriver,这个库可以利用本地的msedgedriver文件来进行自动点击跳转操作,其中webdriver所使用的api请尽情百度 简单说一下操作原理: 1. webdriver是一个可以让应用程序控制edge的一个小工具 2. 在python脚本中,只需要用webdriver找到要点击的地方然后点击这个按钮或者输入文本,之后一路点击提交即可 3. 由于我们学校设计的这个东西很low没有专门的网页版本,只有app转html版本,所以很多控件不能利用name和id找到的话,可以使用xpath,如果自己不会写xpath的路径可以去google浏览器商店里下载一个Chropath拓展然后后台查看控件对应的xpath 4. 如果涉及到的网页需要获取后台地址的话,需要将网站的协议改为更安全的协议(例如https),这是一个坑点,害我难受了一天 5. 如果有涉及到验证码之类的,我想的办法是利用ptl库和cv库,但是由于我的没有验证码所以很成功 操作要求: 1. 下载edge浏览器 2. 在https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/ 下载zip,找到msedgedriver.exe 然后将该文件放在C:\Program Files (x86)\Microsoft\Edge\Application\目录下 3. 在main.py中修改 USER,KEY,TEMPER, URL;其中USER为app用户名, KEY为app密码,TEMEPER为想要设置的温度,URL为需要点击的网站地址 4. 点击main.py,按照要求完成 免责申明: 如身体有情况,请自觉关闭本软件,前往官网手动填报。由于个人填写的虚假信息造成损失作者不负任何责任!!! 源码如下: ```python from selenium import webdriver from lxml import html from selenium.webdriver.support.select import Select import requests import urllib import time import re USER = '' KEY = '.' TEMPER = '' URL = '' class STATIC_VAL(object): LOG_FLAG = False SUCC_FLAG = True N = 0 def SATRT(): driver = webdriver.Edge("C:\Program Files (x86)\Microsoft\Edge\Application\msedgedriver.exe") driver.get(URL) while(not STATIC_VAL.LOG_FLAG): driver.find_element_by_id("username").clear() driver.find_element_by_id("password").clear() #用户名密码 driver.find_element_by_id("username").send_keys(USER) driver.find_element_by_id("password").send_keys(KEY) #登录 driver.find_element_by_xpath("//input[@type='submit']").click() #如果是初始密码,需要点击跳过 try: driver.find_element_by_id("btn-skip").click() except: time.sleep(0.5) if re.search('vapppc',driver.current_url): STATIC_VAL.LOG_FLAG = True print("登录成功!") else: driver.refresh() STATIC_VAL.LOG_FLAG = False # 进入 time.sleep(0.5) #判断当前页面状态 # 如果页面url不一致 # driver.get(URL) if (STATIC_VAL.SUCC_FLAG): #填所在地址 # driver.find_element_by_xpath("//input[@placeholder='请选择籍贯']").click() # driver.find_element_by_xpath("//div[@class='van-picker van-area']//div[1]//ul[1]//li[2]").click() time.sleep(2) #填写温度 driver.find_element_by_xpath('//div[11]//div[2]//div[1]//input[1]').send_keys(TEMPER) #处理健康码颜色 driver.find_element_by_xpath("//div[20]//div[2]//div[1]//input[1]").click() driver.find_element_by_xpath("/html[1]/body[1]/div[1]/div[1]/div[4]/div[1]/div[1]/button[2]").click() #否 driver.find_element_by_xpath("//div[@class='flexColumn group-check vertical-radio-group van-radio-group']//div[@class='van-radio']//i[@class='van-icon van-icon-success']").click() #我已阅读... driver.find_element_by_xpath("//div[@class='van-checkbox__icon van-checkbox__icon--round']//i[@class='van-icon van-icon-success']").click() #提交按钮 driver.find_element_by_xpath("//button[@class='apply-btn van-button van-button--info van-button--normal']").click() time.sleep(0.5) # #判断当前页面状态 driver.quit() #清除标志位 STATIC_VAL.LOG_FLAG = False if __name__ == "__main__": # USER_WARNING() SATRT() ```
相关文章
评论
(暂无评论)
取消回复
发表评论
dorado
一个平平无奇的打工人
17
文章
1
评论
12
栏目
热门文章
寻找两个正序数组的中位数
0 评论
ubutnu下的git常用命令
0 评论
IDEA快捷键一览(转)
0 评论
每日一报自动点击脚本
0 评论
端口查询
0 评论
更多