前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于Selenium的疫情信息自动填报脚本

基于Selenium的疫情信息自动填报脚本

作者头像
老肥码码码
发布2021-04-07 20:48:30
8760
发布2021-04-07 20:48:30
举报

想必在座的各位学生党也和老肥我一样,经常会忘记每日的疫情打卡。人会遗忘,但程序不会,每日定时自动运行代码可以帮助我们完成打卡填报,今天就和大家分享一下我的基于Selenium的疫情信息自动填报脚本。

Selenium是一个Web自动化工具,Selenium测试直接运行在浏览器中,就像真正的用户在操作一样,我们的目标就是使用Selenium模拟我们自己进行填报操作。

首先设置headless参数,这样我们可以不显示Selenium的运行,俗称「无头模式」。

chrome_options = Options()
chrome_options.add_argument('--headless')
driver = webdriver.Chrome(options=chrome_options)

我们使用get方法访问填报的入口网址,接着便是自动登录部分。

我们先找到账号密码的元素所在(按下F12,鼠标点击选择网页中的账号以及密码元素),这里采用xpath的方法寻找元素,找到之后使用send_keys向该位置输入字符串,也就是账号和密码,最后找到登录按钮元素并进行点击便可完成登录过程。

driver.find_element_by_xpath('//*[@id="emap-rsids-content"]/div/div[3]/div/div[1]/div/div/div/input').send_keys(USER_NAME)
driver.find_element_by_xpath('//*[@id="emap-rsids-content"]/div/div[3]/div/div[2]/div/div[1]/div/input').send_keys(USER_PASSWORD)
driver.find_element_by_xpath('//*[@id="emap-rsids-content"]/div/div[3]/div/div[3]/div/button/span').click()

然后我们通过查询得到疫情填报的应用入口,进入该入口并且点击提交按钮进行表单的提交。

每个需要进行页面跳转的部分,可以添加implicitly_wait进行隐式等待,而对于新页面我们可以通过切换窗口的方法到最新页。

windows = driver.window_handles
driver.switch_to.window(windows[-1])

上述便是用Selenium完成从用户登录到疫情填报提交的完整过程,为了能够完成每日填报,我们可以在任务计划程序库(windows)中加入该计划。

image

程序或脚本位置填入Python运行的完整路径,例如F:\Anaconda\Ana\python.exe, 在添加参数位置填入脚本的完整路径, 例如F:\a.py

如此一来,只要将这短短几十行代码的脚本部署到一台时刻开启并处于联网状态的电脑上,我们就无需再为填报而头疼了。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-03-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 算法与数据之美 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
访问管理
访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档