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函数学习笔记
Oct 07 Python
零基础写python爬虫之urllib2使用指南
Nov 05 Python
Python 爬虫学习笔记之多线程爬虫
Sep 21 Python
python爬虫框架scrapy实现模拟登录操作示例
Aug 02 Python
Python Flask框架扩展操作示例
May 03 Python
Django框架使用内置方法实现登录功能详解
Jun 12 Python
python django 原生sql 获取数据的例子
Aug 14 Python
Python制作词云图代码实例
Sep 09 Python
Flask框架路由和视图用法实例分析
Nov 07 Python
Python完全识别验证码自动登录实例详解
Nov 24 Python
python开发实例之Python的Twisted框架中Deferred对象的详细用法与实例
Mar 19 Python
Python Opencv中用compareHist函数进行直方图比较对比图片
Apr 07 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
第九节 绑定 [9]
2006/10/09 PHP
PHP和Mysqlweb应用开发核心技术 第1部分 Php基础-3 代码组织和重用2
2011/07/03 PHP
js GridView 实现自动计算操作代码
2009/03/25 Javascript
基于jQuery的固定表格头部的代码(IE6,7,8测试通过)
2010/05/18 Javascript
web网页按比例显示图片实现原理及js代码
2013/08/09 Javascript
Extjs4中的分页应用结合前后台
2013/12/13 Javascript
原生js和jQuery随意改变div属性style的名称和值
2014/10/22 Javascript
浅析javascript操作 cookie对象
2014/12/26 Javascript
仅9张思维导图帮你轻松学习Javascript 就这么简单
2016/06/01 Javascript
javascript函数中的3个高级技巧
2016/09/22 Javascript
Extjs让combobox写起来简洁又漂亮
2017/01/05 Javascript
vue实现添加标签demo示例代码
2017/01/21 Javascript
Angularjs单选改为多选的开发过程及问题解析
2017/02/17 Javascript
Angularjs 动态添加指令并绑定事件的方法
2017/04/13 Javascript
vue router仿天猫底部导航栏功能
2017/10/18 Javascript
利用js给datalist或select动态添加option选项的方法
2018/01/25 Javascript
vue 实现通过手机发送短信验证码注册功能
2018/04/19 Javascript
AngularJs分页插件使用详解
2018/06/30 Javascript
Bootstarp在pycharm中的安装及简单的使用方法
2019/04/19 Javascript
Angular封装搜索框组件操作示例
2019/04/25 Javascript
vue+element-ui JYAdmin后台管理系统模板解析
2020/07/28 Javascript
python用于url解码和中文解析的小脚本(python url decoder)
2013/08/11 Python
python开发之函数定义实例分析
2015/11/12 Python
python3实现163邮箱SMTP发送邮件
2018/05/22 Python
Python实现迪杰斯特拉算法过程解析
2020/09/18 Python
python实现scrapy爬虫每天定时抓取数据的示例代码
2021/01/27 Python
Python3中对json格式数据的分析处理
2021/01/28 Python
HTML5 body设置全屏背景图片的示例代码
2020/12/08 HTML / CSS
Lookfantastic瑞典:英国知名美妆购物网站
2018/04/06 全球购物
重写子类方法时,抛出异常的书写注意事项
2015/10/17 面试题
财务会计专业毕业生自荐信
2013/10/02 职场文书
大学生预备党员自我评价分享
2013/11/16 职场文书
买卖车协议书
2014/04/21 职场文书
单位考核鉴定意见
2015/06/05 职场文书
2016毕业实习单位评语大全
2015/12/01 职场文书
解决Navicat for Mysql连接报错1251的问题(连接失败)
2021/05/27 MySQL