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自动化测试之从命令行运行测试用例with verbosity
Sep 28 Python
Python标准库os.path包、glob包使用实例
Nov 25 Python
Python中的字典与成员运算符初步探究
Oct 13 Python
python中set常用操作汇总
Jun 30 Python
Python解决N阶台阶走法问题的方法分析
Dec 28 Python
python pandas消除空值和空格以及 Nan数据替换方法
Oct 30 Python
关于Python作用域自学总结
Jun 10 Python
使用python编写一个语音朗读闹钟功能的示例代码
Jul 14 Python
详解python with 上下文管理器
Sep 02 Python
python性能测试工具locust的使用
Dec 28 Python
python实现scrapy爬虫每天定时抓取数据的示例代码
Jan 27 Python
Python人工智能之混合高斯模型运动目标检测详解分析
Nov 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
php实现httpclient类示例
2014/04/08 PHP
php实现httpRequest的方法
2015/03/13 PHP
Symfony2之session与cookie用法小结
2016/03/18 PHP
[原创]解决wincache不支持64位PHP5.5/5.6的问题(提供64位wincache下载)
2016/06/22 PHP
ThinkPHP框架表单验证操作方法
2017/07/19 PHP
Vagrant(WSL)+PHPStorm+Xdebu 断点调试环境搭建
2019/12/13 PHP
javascript 设为首页与加入收藏兼容多浏览器代码
2011/01/11 Javascript
jquery自定义滚动条插件示例分享
2014/02/21 Javascript
ActiveX控件与Javascript之间的交互示例
2014/06/04 Javascript
node.js中的buffer.length方法使用说明
2014/12/14 Javascript
基于jquery实现鼠标左右拖动滑块滑动附源码下载
2015/12/23 Javascript
【JS+CSS3】实现带预览图幻灯片效果的示例代码
2016/03/17 Javascript
浅谈JavaScript前端开发的MVC结构与MVVM结构
2016/06/03 Javascript
前端面试题及答案整理(二)
2016/08/26 Javascript
10分钟掌握XML、JSON及其解析
2020/12/06 Javascript
AngularJS实现使用路由切换视图的方法
2017/01/24 Javascript
利用js定义一个导航条菜单
2017/03/14 Javascript
Angular项目如何升级至Angular6步骤全纪录
2018/09/03 Javascript
vue-router实现嵌套路由的讲解
2019/01/19 Javascript
微信小程序基于picker实现级联菜单
2019/02/15 Javascript
Vue中watch、computed、updated三者的区别及用法
2020/07/27 Javascript
关于uniApp editor微信滑动问题
2021/01/15 Javascript
火车票抢票python代码公开揭秘!
2018/03/08 Python
详解pandas如何去掉、过滤数据集中的某些值或者某些行?
2019/05/15 Python
纯CSS绘制漂亮的圆形图案效果
2014/05/07 HTML / CSS
CSS3 实现图形下落动画效果
2020/11/13 HTML / CSS
兰蔻美国官网:Lancome美国
2017/04/25 全球购物
日本食品网上商店:JaponShop.com
2017/11/28 全球购物
美国正宗奢华复古手袋、珠宝及配饰网站:What Goes Around Comes Around
2018/07/21 全球购物
大队委竞选演讲稿
2014/04/28 职场文书
项目建议书范文
2014/05/12 职场文书
党员创先争优心得体会
2014/09/11 职场文书
高中生期中考试失利检讨书
2014/10/23 职场文书
解除处分决定书
2015/06/25 职场文书
董事长致辞
2015/07/29 职场文书
使用 DataAnt 监控 Apache APISIX的原理解析
2022/07/07 Servers