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制作爬虫抓取美女图
Jan 20 Python
Python的Twisted框架上手前所必须了解的异步编程思想
May 25 Python
python3+PyQt5实现使用剪贴板做复制与粘帖示例
Jan 24 Python
python 计算两个日期相差多少个月实例代码
May 24 Python
使用python 爬虫抓站的一些技巧总结
Jan 10 Python
Python/ArcPy遍历指定目录中的MDB文件方法
Oct 27 Python
解决Pycharm调用Turtle时 窗口一闪而过的问题
Feb 16 Python
python实现视频分帧效果
May 31 Python
使用Python进行中文繁简转换的实现代码
Oct 18 Python
详解python安装matplotlib库三种失败情况
Jul 28 Python
python时间序列数据转为timestamp格式的方法
Aug 03 Python
python获取百度热榜链接的实例方法
Aug 25 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下关于中英数字混排的字符串分割问题
2010/04/06 PHP
PHP对MongoDB[NoSQL]数据库的操作
2013/03/01 PHP
解析PHP获取当前网址及域名的实现代码
2013/06/23 PHP
smarty模板引擎基础知识入门
2015/03/30 PHP
jquery限制输入字数,并提示剩余字数实现代码
2012/12/24 Javascript
你的 mixin 真的兼容 ECMAScript 5 吗?
2013/04/11 Javascript
Javascript简单实现可拖动的div
2013/10/22 Javascript
js正则表达exec与match的区别说明
2014/01/29 Javascript
Eclipse去除js(JavaScript)验证错误
2014/02/11 Javascript
Jquery中$.post和$.ajax的用法小结
2015/04/28 Javascript
jquery中表单 多选框的一种巧妙写法
2015/09/06 Javascript
jquery操作select取值赋值与设置选中实例
2017/02/28 Javascript
JS中使用gulp实现压缩文件及浏览器热加载功能
2017/07/12 Javascript
Vue表单demo v-model双向绑定问题
2018/06/29 Javascript
vue里面使用mui的弹出日期选择插件实例
2018/09/16 Javascript
vue使用原生js实现滚动页面跟踪导航高亮的示例代码
2018/10/25 Javascript
详解小程序中h5页面onShow实现及跨页面通信方案
2019/05/30 Javascript
bootstrap 日期控件 datepicker被弹出框dialog覆盖的解决办法
2019/07/09 Javascript
vue项目强制清除页面缓存的例子
2019/11/06 Javascript
js实现鼠标拖曳效果
2020/12/30 Javascript
Python网页解析利器BeautifulSoup安装使用介绍
2015/03/17 Python
深入浅析python with语句简介
2018/04/11 Python
python使用Matplotlib绘制分段函数
2018/09/25 Python
使用python自动追踪你的快递(物流推送邮箱)
2020/03/17 Python
学习Python需要哪些工具
2020/09/04 Python
如何使用scrapy中的ItemLoader提取数据
2020/09/30 Python
pytorch 实现L2和L1正则化regularization的操作
2021/03/03 Python
美国领先的户外服装与装备用品店:Moosejaw
2016/08/25 全球购物
阿玛尼美妆俄罗斯官网:Giorgio Armani Beauty RU
2020/07/19 全球购物
养殖人员的创业计划书范文
2013/12/26 职场文书
2014年党员个人工作总结
2014/12/02 职场文书
装修公司管理制度
2015/08/05 职场文书
2016年教师反腐倡廉心得体会
2016/01/13 职场文书
2016年社区文体活动总结
2016/04/06 职场文书
ES6 解构赋值的原理及运用
2021/05/25 Javascript
k8s部署redis cluster集群的实现
2021/06/24 Redis