Python 实现自动登录+点击+滑动验证功能


Posted in Python onJune 10, 2020

需要用到的库有selenium,还需要安装Chrome浏览器驱动,具体如何安装我就不详述了

在这里我模拟了csdn的登录过程

**

1**.首先打开网页,用户名+密码登录,然后定位用户名输入框,和密码输入框,输入后 点击登陆 弹出验证滑动条

Python 实现自动登录+点击+滑动验证功能

def __init__(self):
 self.url = 'https://passport.csdn.net/login'
 self.browser = webdriver.Chrome()
 

 #获取登录按钮对象 选择 账号密码登录 
 def get_pass_button(self):
 
 button= self.browser.find_element_by_xpath('//*[@id="app"]/div/div/div[1]/div[2]/div[5]/ul/li[2]/a')
 return button
 
 #打开网址,输入用户名。密码
 def open(self,username,password):
 
 self.browser.get(self.url)
 self.get_pass_button().click()

 

2.然后跳转到登录视图

Python 实现自动登录+点击+滑动验证功能

self.browser.find_element_by_xpath('//*[@id="all"]').send_keys(username) 
 self.browser.find_element_by_xpath('//*[@id="password-number"]').send_keys(password)

 

3.滑动验证条:

Python 实现自动登录+点击+滑动验证功能

ps:个人觉得,这个通过用鼠标事件拖动验证条的方法同样可以适用于滑动验证码,可以把整个滑动验证码分为3-4等份,然后写个循环每次拖动1/3,基本上3-4次就能通过验证,这样就不用用网上写的那种通过获取原图,缺图的方法,很实用,很适合初学者,个人建议,大佬们别喷…

# 获取拖拽的滑动验证码块
 # 按钮xpath 
 slideblock = self.browser.find_element_by_xpath('//*[@id="nc_1_n1z"]')
 
 # 鼠标点击滑动块不松开
 ActionChains(self.browser).click_and_hold(slideblock).perform()
 # 将圆球滑至相对起点位置的 右边xx
 ActionChains(self.browser).move_by_offset(xoffset=260, yoffset=0).perform()
 
 time.sleep(10)
 # 放开滑动块
 ActionChains(self.browser).release(slideblock).perform()
 
#  time.sleep(10)

整体代码如下:

#coding=utf-8
import time
from selenium import webdriver
from selenium.webdriver import ActionChains

class Login():
 #打开浏览器驱动
 def __init__(self):
 self.url = 'https://passport.csdn.net/login'
 self.browser = webdriver.Chrome()
 #获取登录按钮对象 选择 账号密码登录 
 def get_pass_button(self):
 button= self.browser.find_element_by_xpath('//*[@id="app"]/div/div/div[1]/div[2]/div[5]/ul/li[2]/a')
 return button
 #打开网址,输入用户名。密码
 def open(self,username,password):
 self.browser.get(self.url)
 self.get_pass_button().click()
 self.browser.find_element_by_xpath('//*[@id="all"]').send_keys(username) 
 self.browser.find_element_by_xpath('//*[@id="password-number"]').send_keys(password)
 #调用 open方法,输入用户名。密码,
 #调用 get_geetest_button方法,点击按钮
 def log(self):
 # 输入用户名密码
 self.open('33289317','1111')
 # 点击登录按钮
 self.browser.find_element_by_xpath('//*[@id="app"]/div/div/div[1]/div[2]/div[5]/div/div[6]/div/button').click()
 time.sleep(5)
  # 获取拖拽的滑动验证码块
 # 按钮xpath 
 slideblock = self.browser.find_element_by_xpath('//*[@id="nc_1_n1z"]')
 # 鼠标点击滑动块不松开
 ActionChains(self.browser).click_and_hold(slideblock).perform()
 # 将圆球滑至相对起点位置的 右边xx
 ActionChains(self.browser).move_by_offset(xoffset=260, yoffset=0).perform()
 time.sleep(10)
 # 放开滑动块
 ActionChains(self.browser).release(slideblock).perform()
#  time.sleep(10)
 #关闭浏览器,释放资源
 # self.browser.close()
# 程序主入口
if __name__ == '__main__':
 login = Login()
 login.log()

总结

到此这篇关于Python 实现自动登录+点击+滑动验证的文章就介绍到这了,更多相关Python 实现自动登录+点击+滑动验证内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python中使用Tkinter模块创建GUI程序实例
Jan 14 Python
用Python编写脚本使IE实现代理上网的教程
Apr 23 Python
Python断言assert的用法代码解析
Feb 03 Python
python版本的仿windows计划任务工具
Apr 30 Python
python调用Matplotlib绘制分布点并且添加标签
May 31 Python
Python Flask前后端Ajax交互的方法示例
Jul 31 Python
python采集百度搜索结果带有特定URL的链接代码实例
Aug 30 Python
python实现高斯(Gauss)迭代法的例子
Nov 20 Python
python隐藏类中属性的3种实现方法
Dec 19 Python
基于Python实现下载网易音乐代码实例
Aug 10 Python
python不同版本的_new_不同点总结
Dec 09 Python
python基础之模块的导入
Oct 24 Python
Python函数参数定义及传递方式解析
Jun 10 #Python
什么是python类属性
Jun 10 #Python
基于SQLAlchemy实现操作MySQL并执行原生sql语句
Jun 10 #Python
浅谈Python中的模块
Jun 10 #Python
keras多显卡训练方式
Jun 10 #Python
使用SQLAlchemy操作数据库表过程解析
Jun 10 #Python
keras 多gpu并行运行案例
Jun 10 #Python
You might like
PHP 和 MySQL 开发的 8 个技巧
2006/10/09 PHP
PHP大转盘中奖概率算法实例
2014/10/21 PHP
phpcms中的评论样式修改方法
2016/10/21 PHP
gearman中worker常驻后台,导致MySQL server has gone away的解决方法
2020/02/27 PHP
动态调用css文件——jquery的应用
2007/02/20 Javascript
JS之小练习代码
2008/10/12 Javascript
js各种验证文本框输入格式(正则表达式)
2010/10/22 Javascript
jQuery的.live()和.die() 使用介绍
2011/09/10 Javascript
javascript-简单的日历实现及Date对象语法介绍(附图)
2013/05/30 Javascript
简单的js表单验证函数
2013/10/28 Javascript
html5+javascript制作简易画板附图
2014/04/25 Javascript
解决vue-cli项目打包出现空白页和路径错误的问题
2018/09/04 Javascript
如何用RxJS实现Redux Form
2018/12/29 Javascript
Vue使用Proxy监听所有接口状态的方法实现
2019/06/07 Javascript
微信小程序连接服务器展示MQTT数据信息的实现
2020/07/14 Javascript
python杀死一个线程的方法
2015/09/06 Python
Python selenium如何设置等待时间
2016/09/15 Python
Python 画出来六维图
2019/07/26 Python
python opencv 简单阈值算法的实现
2019/08/04 Python
用Python调用win命令行提高工作效率的实例
2019/08/14 Python
python多继承(钻石继承)问题和解决方法简单示例
2019/10/21 Python
Python读取实时数据流示例
2019/12/02 Python
英国泰坦旅游网站:全球陪同游览,邮轮和铁路旅行
2016/11/29 全球购物
应届生程序员求职信
2013/11/05 职场文书
工程业务员岗位职责
2013/12/31 职场文书
高中校园广播稿
2014/01/11 职场文书
2015年元旦文艺汇演主持词
2014/03/26 职场文书
七夕相亲活动策划方案
2014/08/31 职场文书
城管执法人员纪律作风整顿思想汇报
2014/09/13 职场文书
2014最新党员批评与自我批评材料
2014/09/24 职场文书
小区门卫的岗位职责
2014/09/26 职场文书
2014年商场工作总结
2014/11/22 职场文书
大学校园招聘会感想
2015/08/10 职场文书
少先大队干部竞选稿
2015/11/20 职场文书
yyds什么意思?90后已经听不懂00后讲话了……
2022/02/03 杂记
Python实现信息管理系统
2022/06/05 Python