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搭建Django应用程序步骤及版本冲突问题解决
Nov 19 Python
Python2和Python3中print的用法示例总结
Oct 25 Python
用不到50行的Python代码构建最小的区块链
Nov 16 Python
Python 内置函数memoryview(obj)的具体用法
Nov 23 Python
Django使用paginator插件实现翻页功能的实例
Oct 24 Python
Django项目基础配置和基本使用过程解析
Nov 25 Python
Python实现银行账户资金交易管理系统
Jan 03 Python
python如何基于redis实现ip代理池
Jan 17 Python
python实现堆排序的实例讲解
Feb 21 Python
Python使用os.listdir和os.walk获取文件路径
May 21 Python
calendar在python3时间中常用函数举例详解
Nov 18 Python
python模块内置属性概念及实例
Feb 18 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
php出现web系统多域名登录失败的解决方法
2014/09/30 PHP
PHP二维数组排序简单实现方法
2016/02/14 PHP
深入理解PHP中的empty和isset函数
2016/05/26 PHP
PHP数据源架构模式之表入口模式实例分析
2020/01/23 PHP
JavaScript中的16进制字符(改进)
2011/11/21 Javascript
jQuery下通过replace字符串替换实现大小图片切换
2012/05/22 Javascript
定时器(setTimeout/setInterval)调用带参函数失效解决方法
2013/03/26 Javascript
JQuery AJAX 中文乱码问题解决
2013/06/05 Javascript
如何使用jQuery Draggable和Droppable实现拖拽功能
2013/07/05 Javascript
JavaScript设计模式之抽象工厂模式介绍
2014/12/28 Javascript
浅析jQuery Ajax请求参数和返回数据的处理
2016/02/24 Javascript
Javascript的表单与验证-非空验证
2016/03/18 Javascript
JavaScript Date 知识浅析
2017/01/29 Javascript
JavaScript html5 canvas实现图片上画超链接
2017/10/20 Javascript
web页面和微信小程序页面实现瀑布流效果
2018/09/26 Javascript
VUE搭建手机商城心得和遇到的坑
2019/02/21 Javascript
微信小程序生成分享海报方法(附带二维码生成)
2019/03/29 Javascript
vue实现绑定事件的方法实例代码详解
2019/06/20 Javascript
在 Vue 中使用 JSX 及使用它的原因浅析
2020/02/10 Javascript
JS操作Fckeditor的一些常用方法(获取、插入等)
2020/02/19 Javascript
python字典多条件排序方法实例
2014/06/30 Python
python进阶教程之循环对象
2014/08/30 Python
Python中实现三目运算的方法
2015/06/21 Python
举例讲解Python编程中对线程锁的使用
2016/07/12 Python
浅谈django三种缓存模式的使用及注意点
2018/09/30 Python
django框架使用orm实现批量更新数据的方法
2019/06/21 Python
基于Python实现大文件分割和命名脚本过程解析
2019/09/29 Python
Python如何把多个PDF文件合并代码实例
2020/02/13 Python
如何基于python3和Vue实现AES数据加密
2020/03/27 Python
Jupyter Notebook 文件默认目录的查看以及更改步骤
2020/04/14 Python
Python解析m3u8拼接下载mp4视频文件的示例代码
2021/03/03 Python
英国和世界各地鲜花速递专家:Arena Flowers
2018/02/10 全球购物
JAVA程序设计笔试题面试题一套
2015/07/28 面试题
机电一体化应届生求职信范文
2014/01/24 职场文书
党的群众路线教育实践活动公开承诺书
2014/03/28 职场文书
Python实现简单的俄罗斯方块游戏
2021/09/25 Python