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性能提升之延迟初始化
Dec 04 Python
深入理解Python中变量赋值的问题
Jan 12 Python
浅谈Python处理PDF的方法
Nov 10 Python
python多进程实现文件下载传输功能
Jul 28 Python
pandas 空的dataframe 插入列名的示例
Oct 30 Python
python使用response.read()接收json数据的实例
Dec 19 Python
Django框架模板注入操作示例【变量传递到模板】
Dec 19 Python
详解DeBug Python神级工具PySnooper
Jul 03 Python
python 中Arduino串口传输数据到电脑并保存至excel表格
Oct 14 Python
Python3如何使用多线程升程序运行速度
Aug 11 Python
selenium切换标签页解决get超时问题的完整代码
Aug 30 Python
pandas中DataFrame重置索引的几种方法
May 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 $_SERVER["REQUEST_URI"]获取值的通用解决方法
2010/06/21 PHP
PHP防止post重复提交数据的简单例子
2014/06/07 PHP
php实现的操作excel类详解
2016/01/15 PHP
实例讲解php数据访问
2016/05/09 PHP
详解PHP如何更好的利用PHPstorm的自动提示
2017/08/18 PHP
网站被恶意镜像怎么办 php一段代码轻松搞定(全面版)
2018/10/23 PHP
PHP检查URL包含特定字符串实例方法
2019/02/11 PHP
laravel ORM关联关系中的 with和whereHas用法
2019/10/16 PHP
增强的 JavaScript 的 trim 函数的代码
2007/08/13 Javascript
JQuery将文本转化成JSON对象需要注意的问题
2011/05/09 Javascript
js中的this关键字详解
2013/09/25 Javascript
js window.onload 加载多个函数和追加函数详解
2014/01/08 Javascript
利用jQuery实现可以编辑的表格
2014/05/26 Javascript
node.js中的favicon.ico请求问题处理
2014/12/15 Javascript
生成二维码方法汇总
2014/12/26 Javascript
JavaScript模拟实现键盘打字效果
2015/06/29 Javascript
JS获取当前脚本文件的绝对路径
2016/03/02 Javascript
Bootstrap源码解读按钮(5)
2016/12/23 Javascript
浅谈Vue-cli 命令行工具分析
2017/11/22 Javascript
JavaScript中的"=、==、==="区别讲解
2019/01/22 Javascript
Python中字符串对齐方法介绍
2015/05/21 Python
基于anaconda下强大的conda命令介绍
2018/06/11 Python
Python中存取文件的4种不同操作
2018/07/02 Python
Python 利用pydub库操作音频文件的方法
2019/01/09 Python
Django框架 querySet功能解析
2019/09/04 Python
解决Pytorch 加载训练好的模型 遇到的error问题
2020/01/10 Python
Python list运算操作代码实例解析
2020/01/20 Python
python 基于UDP协议套接字通信的实现
2021/01/22 Python
纯DOM+CSS3实现简单的小风车动画
2016/09/27 HTML / CSS
德国婴儿推车和儿童安全座椅商店:BABYSHOP
2016/09/01 全球购物
美国背景检查、公共记录和人物搜索网站:BeenVerified
2018/02/25 全球购物
本科生职业生涯规划书范文
2014/01/21 职场文书
学习交流会主持词
2014/04/01 职场文书
机关作风整顿个人整改措施思想汇报
2014/09/29 职场文书
清洁工岗位职责
2015/02/13 职场文书
python基于tkinter制作下班倒计时工具
2021/04/28 Python