Python 实现自动登陆+点击+滑动验证功能

须要用到的库有selenium,还须要安装Chrome浏览器驱动,具体如何安装我就不详述了web

在这里我模拟了csdn的登陆过程浏览器

**app

1**.首先打开网页,用户名+密码登陆,而后定位用户名输入框,和密码输入框,输入后 点击登录 弹出验证滑动条ide

v2-8b077830aff4a42eb4e8689f8430a086_720w.png

 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.而后跳转到登陆视图url

v2-84eee1a5a641697d2d662476ace569e5_720w.png

 self.browser.find_element_by_xpath('//*[@id="all"]').send_keys(username) 
 self.browser.find_element_by_xpath('//*[@id="password-number"]').send_keys(password)

3.滑动验证条:spa


v2-16c0803094cc5c455aec2d9861eb7b34_720w.png


ps:我的以为,这个经过用鼠标事件拖动验证条的方法一样能够适用于滑动验证码,能够把整个滑动验证码分为3-4等份,而后写个循环每次拖动1/3,基本上3-4次就能经过验证,这样就不用用网上写的那种经过获取原图,缺图的方法,很实用,很适合初学者,我的建议,大佬们别喷….net

 # 获取拖拽的滑动验证码块
 # 按钮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)

总体代码以下:orm

#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 实现自动登陆+点击+滑动验证内容请搜索之前的文章或继续浏览下面的相关文章但愿你们之后多多支持!blog

相关文章
相关标签/搜索