Python 最新版破解滑块验证码自动登录QQ空间

本节所讲内容:

Selenium+Python环境搭建及配置

滑块验证码步骤分解

QQ空间破解滑块验证码登录(全部代码请看最后

1.1  selenium 介绍

1.2  selenium+Python环境配置

前提条件:已安装好Python开发环境(python3.7.2),这是最基本的呦~

安装步骤:

1.  安装selenium:pip install selenium

2.  安装webdriver

各大浏览器webdriver地址可参见https://docs.seleniumhq.org/download/
Firefoxhttps://github.com/mozilla/geckodriver/releases/
Chrome:https://sites.google.com/a/chromium.org/chromedriver/ 或者
http://chromedriver.storage.googleapis.com/index.html
IEhttp://selenium-release.storage.googleapis.com/index.html
  注:webdriver需要和对应的浏览器版本以及selenium版本对应

Webdriver版本

支持的Chrome版本

v2.41

v67-69

v2.40

v66-68

v2.39

v66-68

v2.38

v65-67

v2.37

v64-66

v2.36

v63-65

v2.35

v62-64

v2.34

v61-63

3.  webdriver安装路径

Win复制webdriver到Python安装目录下或者在path中配置下路径(方便python能快速寻找)

    

2.  滑块验证码步骤分解

第一步:访问QQ空间登录网址,定位iframe登录标签,点击账号密码

代码实现:

driver = webdriver.Chrome()
driver.set_window_position(900, 10)
driver.maximize_window()
driver.get(url)
#切换frame
driver.switch_to.frame('login_frame')
#点击
driver.find_element_by_id("switcher_plogin").click()

第二步:跳转到输入界面,然后清空每个输入框的数据然后在点击登录

代码实现:

# 输入用户名和密码
driver.find_element_by_id('u').clear()
driver.find_element_by_id('u').send_keys('3403073998')
driver.find_element_by_id('p').clear()
driver.find_element_by_id('p').send_keys('family521@#!')
sleep(1)# 点击登录
driver.find_element_by_id('login_button').click()
sleep(5)

第三步:再次定位到iframe按钮操作并进行拖拽,距离我们保持固定180,图片让它更换底板图片

在这个地方需要注意点的是我们并没有对滑块移动的距离进行确定,

只是写一个distances=180这个固定的距离,

当然在这个拉取的过程中每次拉取也有可能失败,这是正常现象,请各位拿到代码后运行下

代码实现:

# 切换iframe
try:iframe = driver.find_element_by_xpath('//iframe')
except Exception as e:pass
sleep(2)   # 等待资源加载driver.switch_to.frame(iframe)# 等待图片加载出来
WebDriverWait(driver, 5, 0.5).until(EC.presence_of_element_located((By.ID, "tcaptcha_drag_button"))
)
try:button = driver.find_element_by_id('tcaptcha_drag_button')
except Exception as e:passsleep(1)
# 开始拖动 perform()用来执行ActionChains中存储的行为
#distance 代表的是滑块移动的距离,我们这里直接写死
distance = 180
times = 0
while True:try:action = ActionChains(driver)#点击鼠标并进行拖拽action.click_and_hold(button).perform()# 清除之前的actionaction.reset_actions()#模拟轨迹方程track = get_track(distance)#开始模拟拖拽for i in track:#y轴不偏移,x轴持续滑动action.move_by_offset(xoffset=i, yoffset=0).perform()action.reset_actions()sleep(0.5)#释放鼠标action.release().perform()sleep(5)times += 1print('这是第{}次'.format(times))except:print('登录成功')break

轨迹方程:(为了模仿人为的动作,防止整理)

def get_track(distance):"""根据偏移量获取移动轨迹:param distance: 偏移量:return: 移动轨迹"""# 移动轨迹track = []# 当前位移current = 0# 减速阈值mid = distance * 4 / 5# 计算间隔t = 1# 初速度# v = 0v = 0while current < distance:if current < mid:# 加速度为正2# a_b = 8a = 10else:# 加速度为负3a = -3# 初速度v0v0 = v# 当前速度v = v0 + atv = v0 + a * t# 移动距离x = v0t + 1/2 * a_b * t^2move = v0 * t + 1 / 2 * a * t * t# 当前位移current += move# 加入轨迹track.append(round(move))return track

3.  QQ空间破解滑块模拟登录全部代码

#!/usr/bin/python
# -*- coding: utf-8 -*-
# @Time    : 2020/2/21 21:18
# @Author  : Xuegod Teacher For
# @File    : qq空间.py
from time import sleep
from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWaiturl = 'https://i.qq.com'def get_track(distance):"""根据偏移量获取移动轨迹:param distance: 偏移量:return: 移动轨迹"""# 移动轨迹track = []# 当前位移current = 0# 减速阈值mid = distance * 4 / 5# 计算间隔t = 1# 初速度# v = 0v = 0while current < distance:if current < mid:# 加速度为正2# a_b = 8a = 10else:# 加速度为负3a = -3# 初速度v0v0 = v# 当前速度v = v0 + atv = v0 + a * t# 移动距离x = v0t + 1/2 * a_b * t^2move = v0 * t + 1 / 2 * a * t * t# 当前位移current += move# 加入轨迹track.append(round(move))return trackdef main():driver = webdriver.Chrome()driver.set_window_position(900, 10)driver.maximize_window()driver.get(url)driver.switch_to.frame('login_frame')driver.find_element_by_id("switcher_plogin").click()sleep(1)# 输入用户名和密码driver.find_element_by_id('u').clear()driver.find_element_by_id('u').send_keys('你的QQ账号')driver.find_element_by_id('p').clear()driver.find_element_by_id('p').send_keys('你的QQ密码')sleep(1)# 点击登录driver.find_element_by_id('login_button').click()sleep(5)# 切换iframetry:iframe = driver.find_element_by_xpath('//iframe')except Exception as e:passsleep(2)   # 等待资源加载driver.switch_to.frame(iframe)# 等待图片加载出来WebDriverWait(driver, 5, 0.5).until(EC.presence_of_element_located((By.ID, "tcaptcha_drag_button")))try:button = driver.find_element_by_id('tcaptcha_drag_button')except Exception as e:passsleep(1)# 开始拖动 perform()用来执行ActionChains中存储的行为distance = 180times = 0while True:try:action = ActionChains(driver)#点击鼠标并进行拖拽action.click_and_hold(button).perform()# 清除之前的actionaction.reset_actions()#模拟轨迹方程track = get_track(distance)#开始模拟拖拽for i in track:#y轴不偏移,x轴持续滑动action.move_by_offset(xoffset=i, yoffset=0).perform()action.reset_actions()sleep(0.5)#释放鼠标action.release().perform()sleep(5)times += 1print('这是第{}次'.format(times))except:print('登录成功')breakprint(driver.title)sleep(2)driver.quit()print("finish~~")if __name__ == '__main__':main()

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/352555.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

使用OpenCV 破解QQ登录中的滑动验证码

系列文章目录 第一篇&#xff1a; Java实现QQ登录 第二篇&#xff1a; Selenium QQ自动化登录 第三篇&#xff1a; 使用OpenCV 破解QQ登录中的滑动验证码 文章目录 系列文章目录 文章目录 前言 一、登录流程 二、验证办法 1.滑动验证码 2.获取缺口坐标 2.1 获得两张验证码的…

java程序破解qq闪图

1.找到闪图存放的位置/sdcard/tencent/MobileQQ/diskcache 下面 就是这些&#xff08;但是这不全是qq闪图的照片 而是缓存&#xff09; 有些手机有时间排序&#xff0c;如果是刚发的闪图 可以通过时间排序&#xff0c;直接手机上通过图片打开方式查看 但是我的红米手机没有这…

尚硅谷大数据hadoop教程_yarn

p125 课程介绍 p126 yarn基础架构 YARN主要由ResourceManager、NodeManager、ApplicationMaster和Container等组件构成。 p127 工作机制 &#xff08;1&#xff09;MR程序提交到客户端所在的节点。 &#xff08;2&#xff09;YarnRunner向ResourceManager申请一个Applicatio…

【Java基础】I/O流 —— Java中的流都需要关闭吗?

目录 一、为什么要关闭流&#xff1f;二、close方法和flush方法1.使用close方法2.使用flush方法 三、流按指向分类四、不用关闭的流 一、为什么要关闭流&#xff1f; 涉及到对外部资源的读写操作&#xff0c;包括网络、硬盘等等的I/O流&#xff0c;如果在使用完毕之后不关闭&a…

【Linux】还在用top命令?可以试试atop工具,信息一目了然,运维工程师的新选择

atop使用 Linux以其稳定性&#xff0c;越来越多地被用作服务器的操作系统(当然&#xff0c;有人会较真地说一句&#xff1a;Linux只是操作系统内核:)。但使用了Linux作为底层的操作系统&#xff0c;是否我们就能保证我们的服务做到7*24地稳定呢&#xff1f;非也&#xff0c;要…

鲁大师5月新机性能/流畅/久用榜:蓝绿厂霸榜,天玑9200+与高通骁龙8 Gen2迎来首次交锋

性能榜 6.18年中购物节前夕&#xff0c;一众厂商开始扎堆发布新机冲销量&#xff0c;也导致本月的新发机型数量达到了19款。 从品牌来看&#xff0c;ov两家和其子品牌、独立品牌就占据了十二台。从机型定位来看&#xff0c;本月的手机竞争主要围绕中端市场&#xff0c;除了索尼…

BUUCTF misc 专题(49)穿越时空的思念

下载下来是一段音频&#xff0c;听了一下&#xff0c;大致能听出来点东西&#xff0c;将它放入Audacity或者Audition 我这里是放入了Audition 可以明显地看到有摩斯密码&#xff0c;手动敲下来并用在线网站解码 再将它转化成小写&#xff08;可以使用python&#xff09;&#…

想你,淡淡的思念

2019独角兽企业重金招聘Python工程师标准>>> 淡淡的夜&#xff0c;思念是风&#xff0c; 将我的心吹向你的身边&#xff0c; 淡淡的夜&#xff0c;牵挂是雨&#xff0c; 将我的爱抛向你的脚下。 淡淡的夜&#xff0c;你在那里? 你在遥远的天边&#xff0c; 淡淡的月…

思念到极致时什么感觉?(1)

故事一&#xff1a; 跟交往了四年的初恋分手后&#xff0c; 他去了北京&#xff0c; 我没找任何同伴独自去了那里&#xff0c; 下车的一瞬间我哭了&#xff0c; 想象着他曾经在这里出现过&#xff0c; 也曾挤在拥挤的人群中。 后来哭累了回到酒店&#xff0c; 翻看着他的朋友圈…

500道网络安全/WEB安全面试题合集!附答案解析

前言 随着国家政策的扶持&#xff0c;网络安全行业也越来越为大众所熟知&#xff0c;想要进入到网络安全行业的人也越来越多。 为了拿到心仪的 Offer 之外&#xff0c;除了学好网络安全知识以外&#xff0c;还要应对好企业的面试。 作为一个安全老鸟&#xff0c;工作这么多年…

能用excel批量提取网页内特定数据吗?

这个需求其实是采集数据&#xff0c;用第三方软件比较合适&#xff0c;当然&#xff0c;用excel也可以批量提取网页内特定文字。请按照以下步骤操作&#xff1a; 1. 打开要提取的网页&#xff0c;并选中要提取的文字&#xff0c;例如一个表格里的数据。 2. 复制选中的文字。 …

新浪微博 mysql_新浪微博,腾讯微博mysql数据库主表猜想

用户信息表(t_user_info)字段名称字节数类型描述 User_id4uint32用户编号(主键) User_name20Char[20]名称 Msg_count4uint32发布消息数量,可以作为t_msg_info水平切分新表的auto_increment Fans_count4uint32粉丝数量 Follow_count4Uint32关注对象数量 备注&#xff1a;以User_…

android微博客户端下载,iBeebo微博客户端

iBeebo微博客户端是一款免费的开源微博客户端&#xff0c;比起官方的手机客户端这款应用显然要小巧的多&#xff0c;它没有那些多余的无用功能。iBeebo微博客户端支持私信&#xff0c;你还可以查看热门话题和热门微博&#xff0c;喜欢的朋友不要错过哦!赶紧来最火软件站点击iBe…

2022年12月最新微博新版批量删除微博博文代码_删除清空微博博文的微博批量删除代码与方法

2022年12月微博新版本界面批量删除微博博文的方法 2022最新批量删除微博丨怎么一键批量删除微博与删除关注? 本教程为&#xff1a;一键批量删除新浪微博以前发过的微博(作者&#xff1a;当时我就没憋住) 新浪微博本身不提供批量删除微博的方法&#xff0c;&#xff0c;下面就…

基于IOS的仿微博系统

这份需求说明书的目的是直接对基于MVC模式的微博系统进行需求分析和系统总体设计服务。本说明书面向的读者是进行需求分析的人员和进行系统总体设计的人员。在开发的时候做了ppt、演示视频源码等需要可联系企鹅&#xff1a;2415273018。主要工作是设计实现一款个性化的基 于iOS…

微博java版_新浪微博JAVA通用版

这是新浪微博JAVA通用版&#xff0c;专为JAVA用户打造。无论您身处何地&#xff0c;随时随地记录生活的点点滴滴&#xff0c;与好友分享。 软件介绍 新浪微博JAVA通用版是专为Java平台用户打造的新浪微博手机客户端&#xff0c;功能强大。完全支持阅读、发布、评论、转发、私信…

android 微博发布,手机上怎么用微博?手机如何发广播?

1 如何安装Android微博 Android微博可以通过以下两种方式进行安装&#xff1a;在Android market中下载腾讯微博Android版进行安装 在腾讯微博官网下载apk文件进行安装 2 腾讯微博Android客户端&#xff0c;可以用邮箱地址注册微博帐号吗&#xff1f; 非常抱歉&#xff0c;目前A…

腾讯微博android版本,腾讯微博

安装与下载 1 如何获取一个腾讯微博iPhone客户端&#xff1f; 首先请确认您已经拥有了一个iTunes帐号&#xff0c;可以通过该帐号在App store中下载应用。(如何获取该帐号了解更多) 您可以通过电脑中的iTunes软件将下载到电脑的腾讯微博iPhone客户端同步到您的iPhone中 您也可以…

用计算机上发微博,电脑版新浪微博怎么使用?新浪微博基本使用方法介绍

新浪微博能在第一时间传递最新消息&#xff0c;消息传播速度快、信息量大&#xff0c;在这里可以了解最新信息&#xff0c;可以学习经验&#xff0c;可以找到喜爱的各种小组&#xff0c;深受现代生活人们的喜爱&#xff0c;而新浪微博自2009年开始公测以来&#xff0c;已经拥有…

前端自动化测试基础概念与方案

测试的类型 常见的测试类型主要有以下几种&#xff1a; 单元测试&#xff1a;验证独立单元是否能正常工作集成测试&#xff1a;验证多个单元协同工作端到端测试&#xff1a;从用户角度以机器的方式在真实浏览器环境验证应用交互快照测试&#xff1a;验证程序的UI变化 单元测…