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实现猜数字游戏(无重复数字)示例分享
Mar 29 Python
Python库urllib与urllib2主要区别分析
Jul 13 Python
Python中的匿名函数使用简介
Apr 27 Python
Python中获取对象信息的方法
Apr 27 Python
Django Highcharts制作图表
Aug 27 Python
快速解决PyCharm无法引用matplotlib的问题
May 24 Python
解决pycharm py文件运行后停止按钮变成了灰色的问题
Nov 29 Python
python ipset管理 增删白名单的方法
Jan 14 Python
python如何使用jt400.jar包代码实例
Dec 20 Python
python3将变量写入SQL语句的实现方式
Mar 02 Python
Pycharm如何导入python文件及解决报错问题
May 10 Python
python sleep和wait对比总结
Feb 03 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
德生PL330的评价与改造
2021/03/02 无线电
阿里云Win2016安装Apache和PHP环境图文教程
2018/03/11 PHP
jQuery中将函数赋值给变量的调用方法
2012/03/23 Javascript
基于Jquery实现的一个图片滚动切换
2012/06/21 Javascript
javascript unicode与GBK2312(中文)编码转换方法
2013/11/14 Javascript
JavaScript的React Web库的理念剖析及基础上手指南
2016/05/10 Javascript
省市联动效果的简单实现代码(推荐)
2016/06/06 Javascript
javascript设计模式之中介者模式学习笔记
2017/02/15 Javascript
jQuery插件echarts实现的多柱子柱状图效果示例【附demo源码下载】
2017/03/04 Javascript
BackBone及其实例探究_动力节点Java学院整理
2017/07/14 Javascript
JS判断微信扫码的方法
2017/08/07 Javascript
本地搭建微信小程序服务器的实现方法
2017/10/27 Javascript
JavaScript模块详解
2017/12/18 Javascript
浅谈js获取ModelAndView值的问题
2018/03/28 Javascript
微信小程序实现登录遮罩效果
2018/11/01 Javascript
解决微信小程序中的滚动穿透问题
2019/09/16 Javascript
使用JS来动态操作css的几种方法
2019/12/18 Javascript
详解JavaScript 作用域
2020/07/14 Javascript
使用Python中的cookielib模拟登录网站
2015/04/09 Python
Python爬虫爬取美剧网站的实现代码
2016/09/03 Python
Python常见格式化字符串方法小结【百分号与format方法】
2016/09/18 Python
Python爬取网易云音乐热门评论
2017/03/31 Python
python和ruby,我选谁?
2017/09/13 Python
Python3 操作符重载方法示例
2017/11/23 Python
基于python 二维数组及画图的实例详解
2018/04/03 Python
python实现两个经纬度点之间的距离和方位角的方法
2019/07/05 Python
python绘制高斯曲线
2021/02/19 Python
AmazeUI 导航条的实现示例
2020/08/14 HTML / CSS
英国最大的经认证的有机超市:Planet Organic
2018/02/02 全球购物
加拿大在线眼镜零售商:SmartBuyGlasses加拿大
2019/05/25 全球购物
新年寄语大全
2014/04/12 职场文书
健康证明
2015/06/19 职场文书
2019财务毕业实习报告
2019/06/27 职场文书
mysql 生成连续日期及变量赋值
2022/03/20 MySQL
win10电脑老是死机怎么办?win10系统老是死机的解决方法
2022/08/05 数码科技
Win10系统搭建ftp文件服务器详细教程
2022/08/05 Servers