Python Selenium 实现自动签到脚本详解
本文介绍如何利用Python的Selenium库模拟浏览器操作,实现企业或内部系统的自动签到功能。内容涵盖环境配置、ChromeDriver版本匹配、核心代码逻辑解析及定时任务设置,帮助开发者解决忘记打卡的问题。
背景原因
近期上班后面临每日打卡的要求,由于经常遗忘,因此决定编写一个脚本来实现自动签到功能。
签到原理
该方案通过模拟用户手动输入账号密码、登录系统并执行签到操作来完成流程。在研究过程中,主要使用了Python的selenium库。本人在Windows 10环境下进行了测试,证实该方法可以实现基本的自动打卡功能。
所需环境:Selenium
pip install selenium
安装模拟插件
需要从网络上下载用于模拟点击浏览器的Google浏览器驱动插件chromedriver.exe。下载地址为:https://npm.taobao.org/mirrors/chromedriver/,请确保下载与当前浏览器版本相匹配的驱动插件。(如何查看Chrome浏览器适配的驱动版本?请参考下图所示步骤:)

下载完成
将下载好的驱动插件放置到Chrome.exe所在的安装文件夹下,具体位置如下图所示:

核心代码实现
准备工作结束后,接下来进入具体的代码部分:
import time
import datetime
import random
from selenium import webdriver
def morning_clockin():
# 找到插件的路径,使用它驱动操作
browser = webdriver.Chrome('C:\Program Files\Google\Chrome\Application\chromedriver.exe')
# 选择需要打卡的网址,填入你的签到网页
browser.get('https://www.baudu.login')
# 找到邮件和密码输入框的xpath,并在对应的位置送入账号密码
browser.find_element_by_xpath('//*[@id="email"]').send_keys("724183***@qq.com")
browser.find_element_by_xpath('//*[@id="passwd"]').send_keys("zhan******")
# 找到登录按钮的xpath,模拟点击
browser.find_element_by_xpath('//*[@id="login"]').click()
time.sleep(2)
# 找到签到按钮的xpath,模拟签到
browser.find_element_by_xpath('/html/body/div[3]/div[7]/div/button').click()
if __name__ == '__main__':
# 获取当天的星期,周六日不打卡
today = datetime.datetime.now().weekday() + 1
if (today % 7 == 0) or (today % 7 == 6):
print("今天是本周的第 {} 天,无需打卡!".format(datetime.datetime.now().weekday() + 1))
# 工作日打卡
else:
# 早上打卡---设置0-300秒之间随机数打卡
print(datetime.datetime.now())
random_time = random.randint(0, 60)
time.sleep(random_time)
# 进行打卡
morning_clockin()
print(datetime.datetime.now())
代码完工
如果系统包含验证码环节,可以调用带有验证码识别功能的百度API插件进行处理。由于本示例仅针对无验证码的内部系统,因此未涉及验证码处理部分。最后一步是配置定时任务,具体设置方法可参考网上的相关博客教程。
此外,还附上一篇关于Selenium WebDriver的详细教程,点击此处查看:传送门
后续更新
创建定时任务以运行上述脚本
参考链接:https://www.jb51.net/article/220745.htm
至此,关于使用Python编写脚本实现自动签到的介绍已完成。如需了解更多Python签到相关内容,请搜索本站历史文章或继续浏览后续相关文章,希望大家今后能多多支持本站!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













