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 相关文章推荐
python获取糗百图片代码实例
Dec 18 Python
Python基于twisted实现简单的web服务器
Sep 29 Python
Python连接PostgreSQL数据库的方法
Nov 28 Python
python3安装speech语音模块的方法
Dec 24 Python
只需7行Python代码玩转微信自动聊天
Jan 27 Python
将pip源更换到国内镜像的详细步骤
Apr 07 Python
对python中基于tcp协议的通信(数据传输)实例讲解
Jul 22 Python
Python values()与itervalues()的用法详解
Nov 27 Python
python如何使用Redis构建分布式锁
Jan 16 Python
Python2.7:使用Pyhook模块监听鼠标键盘事件-获取坐标实例
Mar 14 Python
基于Python实现2种反转链表方法代码实例
Jul 06 Python
filter使用python3代码进行迭代元素的实例详解
Dec 03 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
PHP远程连接MYSQL数据库非常慢的解决方法
2008/07/05 PHP
php程序效率优化的一些策略小结
2010/07/17 PHP
php实现的递归提成方案实例
2015/11/14 PHP
php文件上传后端处理小技巧
2016/05/22 PHP
PHP中include/require/include_once/require_once使用心得
2016/08/28 PHP
[原创]PHPCMS遭遇会员投稿审核无效的解决方法
2017/01/11 PHP
laravel-admin自动生成模块,及相关基础配置方法
2019/10/08 PHP
Js+XML 操作
2006/09/20 Javascript
JS保留小数点(四舍五入、四舍六入)实现思路及实例
2013/04/25 Javascript
Node.js(安装,启动,测试)
2014/06/09 Javascript
javascript读取文本节点方法小结
2016/12/15 Javascript
Vue.js双向绑定实现原理详解
2016/12/22 Javascript
JavaScript实现经典排序算法之冒泡排序
2016/12/28 Javascript
详解如何在NodeJS项目中优雅的使用ES6
2017/04/22 NodeJs
获取url中用&隔开的参数实例(分享)
2017/05/28 Javascript
微信小程序 跳转传递数据的实例
2017/07/06 Javascript
vue中添加mp3音频文件的方法
2018/03/02 Javascript
使用Mock.js生成前端测试数据
2020/12/13 Javascript
Python入门篇之条件、循环
2014/10/17 Python
从Python的源码来解析Python下的freeblock
2015/05/11 Python
Python实现霍夫圆和椭圆变换代码详解
2018/01/12 Python
django url到views参数传递的实例
2019/07/19 Python
Python可变参数会自动填充前面的默认同名参数实例
2019/11/18 Python
使用Python操作ArangoDB的方法步骤
2020/02/02 Python
keras实现调用自己训练的模型,并去掉全连接层
2020/06/09 Python
利用python批量爬取百度任意类别的图片的实现方法
2020/10/07 Python
如何将anaconda安装配置的mmdetection环境离线拷贝到另一台电脑
2020/10/15 Python
matplotlib运行时配置(Runtime Configuration,rc)参数rcParams解析
2021/01/05 Python
日本面向世界,国际级的免税在线购物商城:DOKODEMO
2017/02/01 全球购物
美国领先的医疗警报服务:Philips Lifeline
2018/03/12 全球购物
Lacoste(法国鳄鱼)加拿大官网:以标志性的POLO衫而闻名
2019/05/15 全球购物
电话销售经理岗位职责
2013/12/07 职场文书
企业法人授权委托书
2014/04/03 职场文书
入股协议书范本
2014/04/14 职场文书
运动会报道稿大全
2015/07/23 职场文书
创业项目(超低成本创业项目)
2019/08/16 职场文书