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实现对一个完整url进行分割的方法
Apr 29 Python
在Python中使用matplotlib模块绘制数据图的示例
May 04 Python
Python3 模块、包调用&路径详解
Oct 25 Python
python定时利用QQ邮件发送天气预报的实例
Nov 17 Python
Python+树莓派+YOLO打造一款人工智能照相机
Jan 02 Python
python实现网页自动签到功能
Jan 21 Python
Python matplotlib学习笔记之坐标轴范围
Jun 28 Python
Python3环境安装Scrapy爬虫框架过程及常见错误
Jul 12 Python
Python基于OpenCV实现人脸检测并保存
Jul 23 Python
python GUI库图形界面开发之PyQt5滚动条控件QScrollBar详细使用方法与实例
Mar 06 Python
pytorch实现查看当前学习率
Jun 24 Python
Python 如何测试文件是否存在
Jul 31 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数据采集的详解
2013/06/02 PHP
ThinkPHP中where()使用方法详解
2016/04/19 PHP
PHP实现的XML操作类【XML Library】
2016/12/29 PHP
YII2框架中日志的配置与使用方法实例分析
2020/03/18 PHP
javascript生成json数据简单示例分享
2014/02/14 Javascript
javascript制作坦克大战全纪录(2)
2014/11/27 Javascript
深入解析JavaScript的闭包机制
2015/10/20 Javascript
Bootstrap Table的使用总结
2016/10/08 Javascript
实现easyui的datagrid导出为excel的示例代码
2016/11/10 Javascript
node.js请求HTTPS报错:UNABLE_TO_VERIFY_LEAF_SIGNATURE\的解决方法
2016/12/18 Javascript
vue模板语法-插值详解
2017/03/06 Javascript
JS 验证密码 不能为空,必须含有数字、字母、特殊字符,长度在8-12位
2017/06/21 Javascript
详细AngularJs4的图片剪裁组件的实例
2017/07/12 Javascript
JavaScript基于activexobject连接远程数据库SQL Server 2014的方法
2017/07/12 Javascript
JS实现上传图片的三种方法并实现预览图片功能
2017/07/14 Javascript
AngularJS 实现购物车全选反选功能
2017/10/24 Javascript
微信小程序视图容器(swiper)组件创建轮播图
2020/06/19 Javascript
webpack DllPlugin xxx is not defined解决办法
2019/12/13 Javascript
在vue项目中promise解决回调地狱和并发请求的问题
2020/11/09 Javascript
element-ui点击查看大图的方法示例
2020/12/14 Javascript
基于vue的video播放器的实现示例
2021/02/19 Vue.js
[49:42]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#2Secret VS EG第一局
2016/03/04 DOTA
Python安装模块的常见问题及解决方法
2018/02/05 Python
Win10下python 2.7.13 安装配置方法图文教程
2018/09/18 Python
对pyqt5之menu和action的使用详解
2019/06/20 Python
Python jieba结巴分词原理及用法解析
2020/11/05 Python
用canvas实现图片滤镜效果附演示
2013/11/05 HTML / CSS
Html5页面获取微信公众号的openid的方法
2020/05/12 HTML / CSS
美国时装品牌:Nautica(诺帝卡)
2016/08/28 全球购物
中国领先的汽车保养服务平台:途虎养车
2019/10/18 全球购物
自动化专业职业生涯规划书范文
2014/01/16 职场文书
农村葬礼主持词
2014/03/31 职场文书
幼儿园中班教师寄语
2014/04/03 职场文书
小学生十佳少年事迹材料
2014/08/20 职场文书
行政处罚事先告知书
2015/07/01 职场文书
python实现会员信息管理系统(List)
2022/03/18 Python