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在windows下实现备份程序实例
Jul 04 Python
详解Python中的Descriptor描述符类
Jun 14 Python
python实现简易云音乐播放器
Jan 04 Python
python开发游戏的前期准备
May 05 Python
Pyqt5 实现跳转界面并关闭当前界面的方法
Jun 19 Python
Python绘图实现显示中文
Dec 04 Python
Pytorch在NLP中的简单应用详解
Jan 08 Python
pymysql的简单封装代码实例
Jan 08 Python
使用 Python ssh 远程登陆服务器的最佳方案
Mar 06 Python
django 利用Q对象与F对象进行查询的实现
May 15 Python
python如何求100以内的素数
May 27 Python
PyQt5-QDateEdit的简单使用操作
Jul 12 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源码加密 仿微盾PHP加密专家(PHPCodeLock)
2010/05/06 PHP
PHP实现图片不变型裁剪及图片按比例裁剪的方法
2016/01/14 PHP
解决laravel(5.5)访问public报错的问题
2019/10/12 PHP
基于datagrid框架的查询
2013/04/08 Javascript
JS验证控制输入中英文字节长度(input、textarea等)具体实例
2013/06/21 Javascript
javascript操作referer详细解析
2014/03/10 Javascript
javascript的switch用法注意事项分析
2015/02/02 Javascript
Javascript闭包实例详解
2015/11/29 Javascript
js浏览器html5表单验证
2016/10/17 Javascript
Angular 4.x 动态创建表单实例
2017/04/25 Javascript
浅析node.js的模块加载机制
2018/05/25 Javascript
JavaScript中set与get方法用法示例
2018/08/15 Javascript
JavaScript设计模式之观察者模式实例详解
2019/01/16 Javascript
vue3为什么要用proxy替代defineProperty
2020/10/19 Javascript
[01:34]传奇从这开始 2016国际邀请赛中国区预选赛震撼开启
2016/06/26 DOTA
Python实现全局变量的两个解决方法
2014/07/03 Python
python传递参数方式小结
2015/04/17 Python
详细讲解用Python发送SMTP邮件的教程
2015/04/29 Python
快速解决安装python没有scripts文件夹的问题
2018/04/03 Python
对numpy和pandas中数组的合并和拆分详解
2018/04/11 Python
python GUI库图形界面开发之PyQt5中QWebEngineView内嵌网页与Python的数据交互传参详细方法实例
2020/02/26 Python
Python 找出出现次数超过数组长度一半的元素实例
2020/05/11 Python
python文件排序的方法总结
2020/09/13 Python
如何使用Python调整图像大小
2020/09/26 Python
python反扒机制的5种解决方法
2021/02/06 Python
CSS3实现滚动条动画效果代码分享
2016/08/03 HTML / CSS
CSS3点击按钮实现背景渐变动画效果
2016/10/19 HTML / CSS
纽约的奢华内衣店:Journelle
2016/07/29 全球购物
英国的一家创新礼品和小工具零售商:Menkind
2019/08/24 全球购物
香港零食网购:上仓胃子
2020/06/08 全球购物
端口镜像是怎么实现的
2014/03/25 面试题
白酒市场营销方案
2014/02/25 职场文书
社区平安建设方案
2014/05/25 职场文书
python中的sys模块和os模块
2022/03/20 Python
Nginx速查手册及常见问题
2022/04/07 Servers
如何优化vue打包文件过大
2022/04/13 Vue.js