Python实现自动签到脚本的示例代码


Posted in Python onAugust 19, 2020

实训课期间忙里偷闲的学习了python的selenium包,唯一一点不好是要自己去查英文文档,明摆着欺负我这种英语不好的,想着用谷歌翻译一下,代码也给我翻译了,不知道是几个意思。

大二的时候就让我们做自动签到脚本,说用JS可以写一下,但是说着说着就给忘了,现在学了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了。

Python实现自动签到脚本的示例代码

首先在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可以不需要浏览器就可以实现自动签到,昨天写的时候,上面报错,说phantomjs被弃用了。

还有就是使用浏览器模拟登陆的时候总是报错 : get() missing 1 required positional argument: 'url' ,然后下载chromedriver之后就好了。

在之前还尝试过使用火狐浏览器去实现自动签到,火狐也需要下载一个geckodriver.exe,下载之后也是要去编辑PATH,为了方便就直接把geckodriver.exe放在了python36的文件夹下,但是这个要求好像挺多的,我的火狐和geckodriver都是最新版,他还是会报错,不让打开火狐,后来我就选了chrome(还是谷歌大法好)。

到此这篇关于Python实现自动签到脚本的示例代码的文章就介绍到这了,更多相关Python 自动签到内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
采用python实现简单QQ单用户机器人的方法
Jul 03 Python
使用C语言来扩展Python程序和Zope服务器的教程
Apr 14 Python
简介二分查找算法与相关的Python实现示例
Aug 26 Python
OpenCV搞定腾讯滑块验证码的实现代码
May 18 Python
python读取Excel表格文件的方法
Sep 02 Python
python数据预处理 :数据抽样解析
Feb 24 Python
Python实现代码块儿折叠
Apr 15 Python
记录模型训练时loss值的变化情况
Jun 16 Python
实例讲解Python 迭代器与生成器
Jul 08 Python
Python Flask异步发送邮件实现方法解析
Aug 01 Python
python 动态绘制爱心的示例
Sep 27 Python
Python实现王者荣耀自动刷金币的完整步骤
Jan 22 Python
python3环境搭建过程(利用Anaconda+pycharm)完整版
Aug 19 #Python
Python容器类型公共方法总结
Aug 19 #Python
python3将变量输入的简单实例
Aug 19 #Python
手把手教你将Flask应用封装成Docker服务的实现
Aug 19 #Python
python实现每天自动签到领积分的示例代码
Aug 18 #Python
numpy中生成随机数的几种常用函数(小结)
Aug 18 #Python
在 Python 中使用 MQTT的方法
Aug 18 #Python
You might like
mysql5详细安装教程
2007/01/15 PHP
Codeigniter出现错误提示Error with CACHE directory的解决方案
2014/06/12 PHP
浅谈PHP安全防护之Web攻击
2017/01/03 PHP
php PDO实现的事务回滚示例
2017/03/23 PHP
Laravel Validator自定义错误返回提示消息并在前端展示
2019/05/09 PHP
PHP实现批量修改文件名的方法示例
2019/09/18 PHP
解决FireFox下[使用event很麻烦]的问题
2006/11/26 Javascript
悄悄用脚本检查你访问过哪些网站的代码
2010/12/04 Javascript
为EasyUI的Tab标签添加右键菜单的方法
2012/07/14 Javascript
判断ie的两种简单方法
2013/08/12 Javascript
基于BootStrap实现局部刷新分页实例代码
2016/08/08 Javascript
详解Javascript中的原型OOP
2016/10/12 Javascript
JS表单提交验证、input(type=number) 去三角 刷新验证码
2017/06/21 Javascript
浅谈Vue Element中Select下拉框选取值的问题
2018/03/01 Javascript
jQuery实现的淡入淡出图片轮播效果示例
2018/08/29 jQuery
vue--点击当前增加class,其他删除class的方法
2018/09/15 Javascript
js取小数点后两位四种方法
2019/01/18 Javascript
mpvue开发音频类小程序踩坑和建议详解
2019/03/12 Javascript
详解element-ui中表单验证的三种方式
2019/09/18 Javascript
es6数组includes()用法实例分析
2020/04/18 Javascript
解决新建一个vue项目过程中遇到的问题
2020/10/22 Javascript
[02:11]2016国际邀请赛中国区预选赛最美TA采访现场玩家
2016/06/28 DOTA
[40:19]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第二场 12.18
2020/12/19 DOTA
使用Python的Zato发送AMQP消息的教程
2015/04/16 Python
python实现FTP循环上传文件
2020/03/20 Python
使用PyQt5实现图片查看器的示例代码
2020/04/21 Python
Django Model中字段(field)的各种选项说明
2020/05/19 Python
JAKO-O德国野酷台湾站:德国首屈一指的婴幼童用品品牌
2019/01/14 全球购物
GOLFINO英国官网:高尔夫服装
2020/04/11 全球购物
澳大利亚著名的纺织品品牌:Canningvale
2020/05/05 全球购物
班级年度安全计划书
2014/05/01 职场文书
滞留工资返还协议书
2014/10/19 职场文书
婚礼答谢礼品
2015/01/20 职场文书
小学教师个人总结
2015/02/05 职场文书
初中体育教学随笔
2015/08/15 职场文书
MySQL中InnoDB存储引擎的锁的基本使用教程
2021/05/26 MySQL