python写一个自动登录脚本_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()
总结
到此这篇关于Python 实现自动登录+点击+滑动验证的文章就介绍到这了,更多相关Python 实现自动登录+点击+滑动验证内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
python写一个自动登录脚本_Python 实现自动登录+点击+滑动验证功能相关推荐
- python自动登录教程_Python 实现自动登录+点击+滑动验证功能
需要用到的库有selenium,还需要安装Chrome浏览器驱动,具体如何安装我就不详述了 在这里我模拟了csdn的登录过程 ** 1**.首先打开网页,用户名+密码登录,然后定位用户名输入框,和密码 ...
- python登录京东滑动验证_Python 实现自动登录+点击+滑动验证功能
需要用到的库有selenium,还需要安装Chrome浏览器驱动,具体如何安装我就不详述了 在这里我模拟了csdn的登录过程 ** 1**.首先打开网页,用户名+密码登录,然后定位用户名输入框,和密码 ...
- python写一个文件下载器_python使用tcp实现一个简单的下载器
上一篇中介绍了tcp的流程,本篇通过写一个简单的文件下载器程序来巩固之前学的知识. 文件下载器的流程如下: 客户端: 输入目标服务器的ip和port 输入要下载文件的名称 从服务器下载文件保存到本地 ...
- python写一个自动登录脚本_python实现自动登录
利用python,可以实现填充网页表单,从而自动登录WEB门户. (注意:以下内容只针对python3) 环境准备: (1)安装python (2)安装splinter,下载源码 python set ...
- python写一个聊天程序_python实现一个简单的网络聊天程序
一.Linux Socket 1.Linux Socke基本上就是BSD Socket(伯克利套接字) 伯克利套接字的应用编程接口(API)是采用C语言的进程间通信的库,经常用在计算机网络间的通信.B ...
- 用python写一个彩票过滤器_python入门教程NO.6 用python做个简单的彩票号码统计分析工具...
python入门教程 python入门教程NO.6 用python做个简单的彩票号码统计分析工具 本文涉及的python基础语法是:字典.集合及for循环 字典的定义 字典也是一种可变的容器,它可以存 ...
- 用python写一个彩票过滤器_Python实现的彩票机选器实例
本文实例讲述了Python实现彩票机选器的方法.分享给大家供大家参考.具体实现方法如下: # -*- coding: utf8 -*- from Tkinter import * import tkF ...
- 用python写一个通讯录_python写一个通讯录
闲着没事,用python写一个模拟通讯录,要求要实现常用的通讯录的功能,基本流程如下 接下来就按照这个流程实现各个模块的功能 1. 定义一个类,并初始化 def __init__(self): w ...
- python编写木马攻击_用Python写一个自动木马程序
电脑作为大家日常办公的工具,最怕的一件事情之一就是被偷,当我们的电脑被盗的时候,不仅仅是电脑本身,更重要的是电脑存储的资料都会丢失.如何尽快的找回电脑需要我们想点办法,今天就教大家一个好的技巧,虽说不 ...
最新文章
- 约瑟夫生死环游戏c语言程序,使用C++实现的约瑟夫生死游戏
- 斐波那契数列 递推 递归 备忘录 动态规划
- 成功解决ValueError: (‘Unknown transform primitive years. ‘, ‘Call ft.primitives.list_primitives() to get
- iOS中都有什么设计模式?各个设计模式的作用 (转载)
- java正则表达式性能_译:Java 中的正则表达式性能概述
- feign调用接口参数可以为null吗_FeignClient调用POST请求时查询参数被丢失的情况分析与处理...
- 轻松生成小程序分享海报
- visual basic对文件夹下的excel执行批量删除行操作
- [译] Node.js 流: 你需要知道的一切
- 了解Spring的变迁从Spring3到Spring5
- [软件工程基础实验]生命游戏
- 知网免费下载期刊文献
- java会员消费管理系统源码_基于jsp的会员消费商场vip管理系统-JavaEE实现会员消费商场vip管理系统 - java项目源码...
- 磁盘的组成、MBR、GPT
- [CF1538E] Funny Substrings (模拟)
- 吉林大学考研计算机系分数线,吉林大学考研计算机分数线相关交流问答贴 小木虫论坛-学术科研互动平台...
- yarn常用安装命令
- Markdown 插入图片的方法
- ESP32开发三_蓝牙开发
- C#中如何删除DataTable数据
热门文章
- Jerry本地安装SAP Kyma的一些失败尝试
- Cloud for Customer的第一个显示的work center是怎么加载和渲染的
- One order event display tool
- tcode SLG1 Object determination logic
- 聊聊JavaScript和Scala的表达式 Expression
- Opportunity的chance of success的赋值逻辑
- 半正定矩阵的判定方法_线性代数30——正定矩阵和最小值
- java 全局变量 跳出递归循环_Java技术知识点的一些总结
- 重装上阵怎么造简便机器人_重装上阵怎么造厉害的机器人?新人必看的干货组装教学[多图]...
- 同一目录下有大量文件会影响效率吗_到底是什么原因才导致 select * 效率低下的?