Python 实现自动登录+点击+滑动验证功能
作者:铁头娃_ 发布时间:2023-10-09 01:11:05
标签:Python,自动登录,滑动验证
需要用到的库有selenium,还需要安装Chrome浏览器驱动,具体如何安装我就不详述了
在这里我模拟了csdn的登录过程
**
1**.首先打开网页,用户名+密码登录,然后定位用户名输入框,和密码输入框,输入后 点击登陆 弹出验证滑动条
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.然后跳转到登录视图
self.browser.find_element_by_xpath('//*[@id="all"]').send_keys(username)
self.browser.find_element_by_xpath('//*[@id="password-number"]').send_keys(password)
3.滑动验证条:
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()
来源:https://blog.csdn.net/weixin_46055113/article/details/106613782
0
投稿
猜你喜欢
- 需求针对tab键带来的多个空格问题,有时候我们针对带空格的一行数据要进行切割,如果有多个空格就会出现就会切割空格出现,我们想把空格都去掉,所
- 星期五写了个分类信息的小东东!在数据库里只有ip地址,一般访客不太清楚IP地址来源于哪个城市.如果在表里多一个列保存城市又没有真实性可言.如
- 引言GO虽然不消耗大量内存,但是仍有一些小技巧可以节省内存,良好的编码习惯是每一个程序员都应该具备的素质。预先分配切片数组是具有连续内存的相
- 起因很单纯,就是给我1年级小豆包的女儿标注三国和西游章节的汉语拼音,我女儿每天
- folder.htm<html><head><title>闪亮日子之在线创建文件夹</title&
- 前后端分离的开发模式,原本觉得没什么稀奇的玩艺,在最近参与的一个大型项目中,让我有了更深的理解。前后端分离的开发模式:系统分析阶段,系分和前
- 考虑到女友的安全问题,就做了一个app实现定位和服务器实现转发的东西。刚学python,竟没想到用对象编程会更加方便,全程过程式开发,代码有
- 一、使用logging.config.dictConfig()函数读取配置信息,参数是字典类型with open(file="./
- 我们知道,Diango 接收的 HTTP 请求信息里带有 Cookie 信息。Cookie的作用是为了识别当前用户的身份,通过以下例子来说明
- 可以压缩文件和目录。package mainimport ( "archive/zip" &qu
- MySQL常用的四种引擎的介绍(1):MyISAM存储引擎:不支持事务、也不支持外键,优势是访问速度快,对事务完整性没有 要求或者以sele
- 最近有个部署需求,需要读取py文件格式的配置项,我的实现思路是把配置文件解析到内存中。主要使用两种方法:importlib.import_m
- 本文由 kouyubo 整理到现在为止,只有一些已经工作的特性,他们中的一些如下:圆角从web2.0开始,开始流行使用圆角,如果你不使用圆角
- 我们平日办公时用得最多的软件是Execl、Word或WPS Office等,你的计算机中一定储存着大量的XLS、DOC、WPS文件吧!网页制
- 1.sort()方法sort()是列表的方法,修改原列表使得它按照大小排序,没有返回值,返回NoneIn [90]: x = [4, 6,
- Mysql索引索引介绍索引是什么官方介绍索引是帮助MySQL高效获取数据的数据结构。更通俗的说,数据库索引好比是一本书前面的目录,能加快数据
- 1.效果2.环境1.pytorch2.visdom3.python3.53.用到的代码# coding:utf8import torchfr
- 一、前情提要相信来看这篇深造爬虫文章的同学,大部分已经对爬虫有不错的了解了,也在之前已经写过不少爬虫了,但我猜爬取的数据量都较小,因此没有过
- sqrt()方法返回x的平方根(x>0)。语法以下是sqrt()方法的语法:import mathmath.sqrt( x
- 本文实例讲述了Python使用Matplotlib实现雨点图动画效果的方法。分享给大家供大家参考,具体如下:关键点win10安装ffmpeg