Python使用Selenium实现自动签到脚本教程

陆遥
陆遥
发布时间:2026-10-14| 3人浏览过
原创

本文详细介绍如何使用Python的Selenium库编写自动签到脚本。内容涵盖开发环境配置、ChromeDriver下载与路径设置、核心代码实现及常见报错处理。通过具体案例演示如何模拟浏览器操作完成网页自动登录与签到,并提供优化建议,适合Python初学者参考。

Python Selenium自动签到脚本教程

在实训课程期间,我利用空闲时间学习了Python中的Selenium库。唯一不便的是需要查阅英文官方文档,这对于英语基础薄弱的用户来说确实有些挑战。尝试使用谷歌翻译代码时,发现连代码注释也被一并翻译,这让人有些困惑,不知道具体意图是什么。

早在大学二年级时,老师曾建议用JavaScript编写自动签到脚本,但当时并未重视。如今学习Python后,重新想起这个需求,不得不感叹Python的强大之处:仅需约二十行代码即可实现该功能。虽然目前脚本仍需手动触发运行,但未来仍有优化空间。

开发环境与依赖配置

开发环境配置为Windows10操作系统,代码编辑器选用Sublime,并确保已正确安装Python运行环境。

Selenium官方开发文档地址为:http://selenium-python.readthedocs.io/。英语能力较好的开发者可以直接参考该文档,其内容非常详尽。

由于脚本运行依赖于谷歌浏览器,因此需要下载对应版本的chromedriver.exe驱动。下载地址为:http://npm.taobao.org/mirrors/chromedriver/。请务必注意,下载的驱动版本必须与本地安装的谷歌浏览器版本相匹配。

在驱动下载页面中,选择与自身浏览器版本相符的chromedriver。例如,我的谷歌浏览器版本为67.0.3396.99,因此下载了2.40版本下的最新驱动。下载解压后,将.exe文件放入系统PATH环境变量中;为方便起见,我直接将其放置在了python36的安装目录下,从而省去了配置PATH的步骤。

Selenium库安装与代码实现

首先,在命令行(DOS)中输入以下命令以安装Selenium库:


pip install selenium

接下来开始编写具体代码。首先导入webdriver模块和time模块,其中time模块用于设置延时,确保网页完全加载后再进行后续操作。


# 方便延时加载
import time
from selenium import webdriver
 
# 模拟浏览器打开网站
browser = webdriver.Chrome()
browser.get('https://www.ctguqmx.com')
# 将窗口最大化
browser.maximize_window()
 
# 根据路径找到按钮,并模拟进行点击
browser.find_element_by_xpath('/html/body/div[1]/div/div[4]/span/a[1]').click()
# 延时2秒,以便网页加载所有元素,避免之后找不到对应的元素
time.sleep(2)
 
# 格式是PEP8自动转的
# 这里是找到输入框,发送要输入的用户名和密码,模拟登陆
browser.find_element_by_xpath(
 "//*[@id='aw-login-user-name']").send_keys("账号")
browser.find_element_by_xpath(
 "//*[@id='aw-login-user-password']").send_keys("密码")
# 在输入用户名和密码之后,点击登陆按钮
browser.find_element_by_xpath("//*[@id='login_submit']").click()
time.sleep(2)
 
# 点击登陆后的页面中的签到,跳转到签到页面
browser.find_element_by_xpath("/html/body/div[1]/div/div[5]/a").click()
time.sleep(2)
 
# 点击签到,实现功能
browser.find_element_by_xpath("//*[@id='qd_button']").click()
time.sleep(2)
 
# 这个print其实没事什么用,如果真的要测试脚本是否运行成功,可以用try来抛出异常
print("签到成功")
 
# 脚本运行成功,退出浏览器
browser.quit()

上述代码实现了自动签到的核心功能,无需手动打开网页,只需运行脚本即可完成签到操作。

常见问题与解决方案

在编写脚本过程中遇到一些小问题。昨天尝试下载phantomjs,虽然Selenium早期版本支持通过phantomjs无需浏览器界面即可实现自动签到,但运行时报错提示该工具已被弃用。

此外,在使用浏览器模拟登录时,曾遇到“get() missing 1 required positional argument: 'url'”的错误。在正确下载并配置chromedriver后,该问题得以解决。

此前还尝试使用火狐浏览器实现自动签到,这需要下载geckodriver.exe并配置PATH。为简化操作,我将geckodriver.exe直接放入python36文件夹。然而,即使火狐浏览器和geckodriver均为最新版本,仍报错无法打开火狐。最终选择使用Chrome浏览器,确实更为便捷。

总结

至此,关于Python实现自动签到脚本的介绍完毕。如需了解更多相关Python自动签到脚本内容,请搜索本站历史文章或继续浏览后续相关文章。希望大家以后多多支持本站!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。