Python实现自动签到脚本功能


Posted in Python onAugust 20, 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 相关文章推荐
linux下安装easy_install的方法
Feb 10 Python
python的keyword模块用法实例分析
Jun 30 Python
谈谈Python进行验证码识别的一些想法
Jan 25 Python
Python编程二分法实现冒泡算法+快速排序代码示例
Jan 15 Python
Python使用Dijkstra算法实现求解图中最短路径距离问题详解
May 16 Python
解决在Python编辑器pycharm中程序run正常debug错误的问题
Jan 17 Python
python3利用Socket实现通信的方法示例
May 06 Python
python根据字典的键来删除元素的方法
Aug 16 Python
Pycharm连接gitlab实现过程图解
Sep 01 Python
pymongo insert_many 批量插入的实例
Dec 05 Python
python脚本定时发送邮件
Dec 22 Python
python字符串拼接.join()和拆分.split()详解
Nov 23 Python
python如何随机生成高强度密码
Aug 19 #Python
python实现图片转换成素描和漫画格式
Aug 19 #Python
python+django+selenium搭建简易自动化测试
Aug 19 #Python
python 中的命名空间,你真的了解吗?
Aug 19 #Python
13个Pandas实用技巧,助你提高开发效率
Aug 19 #Python
python环境搭建和pycharm的安装配置及汉化详细教程(零基础小白版)
Aug 19 #Python
Python实现自动签到脚本的示例代码
Aug 19 #Python
You might like
咖啡豆要不要放冰箱的原因
2021/03/04 冲泡冲煮
PHP安装攻略:常见问题解答(一)
2006/10/09 PHP
PHP开发负载均衡指南
2010/07/17 PHP
php实现批量下载百度云盘文件例子分享
2014/04/10 PHP
laravel 5.5 关闭token的3种实现方式
2019/10/24 PHP
javascript实现轮显新闻标题链接
2007/08/13 Javascript
JS无法捕获滚动条上的mouse up事件的原因猜想
2012/03/21 Javascript
jquery中focus()函数实现当对象获得焦点后自动把光标移到内容最后
2013/09/29 Javascript
javascript setinterval 的正确语法如何书写
2014/06/17 Javascript
JavaScript中解析JSON数据的三种方法
2015/07/03 Javascript
JavaScript如何调试有哪些建议和技巧附五款有用的调试工具
2015/10/28 Javascript
JS添加或修改控件的样式(Class)实现方法
2016/10/15 Javascript
教你一步步用jQyery实现轮播器
2016/12/18 Javascript
canvas绘制万花筒效果(代码分享)
2017/01/20 Javascript
巧用canvas
2017/01/21 Javascript
vue分类筛选filter方法简单实例
2017/03/30 Javascript
使用nodeJs来安装less及编译less文件为css文件的方法
2017/11/20 NodeJs
javaScript日期工具类DateUtils详解
2017/12/08 Javascript
layui结合form,table的全选、反选v1.0示例讲解
2018/08/15 Javascript
javascript实现滚动条效果
2020/03/24 Javascript
vue中echarts的用法及与elementui-select的协同绑定操作
2020/11/17 Vue.js
[40:55]Liquid vs LGD 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
可用于监控 mysql Master Slave 状态的python代码
2013/02/10 Python
详解在Python和IPython中使用Docker
2015/04/28 Python
Django2.1.3 中间件使用详解
2018/11/26 Python
在Django中URL正则表达式匹配的方法
2018/12/20 Python
Python 绘制酷炫的三维图步骤详解
2019/07/12 Python
Python+OpenCV实现将图像转换为二进制格式
2020/01/09 Python
Python字符编码转码之GBK,UTF8互转
2020/02/09 Python
CSS实现限制字数功能当对象内文本溢出时显示省略标记
2014/08/20 HTML / CSS
印度领先的在线时尚商店:Koovs
2016/08/28 全球购物
质量工程师岗位职责
2013/11/16 职场文书
优秀工作者事迹材料
2014/12/26 职场文书
MySQL的Query Cache图文详解
2021/07/01 MySQL
Redis高并发缓存架构性能优化
2022/05/15 Redis
关于Redis的主从复制及哨兵问题
2022/06/16 Redis