前言

研究爬虫的各位小伙伴都知道,需要登录才能获取信息的网站,是比较难爬的,原因就是在于,现在各大网站为了反爬,都加入了图片验证码,滑动验证码之类的干扰,

本篇就针对视频门户网站的滑动验证码进行讲解和破解

关于破解滑动验证究竟是自己使用机器学习还是第三方服务讨论

先说一下个人观点:本人作为一个爬虫老鸟,如果只是为了使用,非常建议使用第三方服务,为什么呢,来听我细细分析,

现在是2020年了,混IT的都知道,现在大红大紫的热门行业是哪个,肯定都说机器学习,都想入门机器学习,但是很多人还没入门就挂了,这是为什么呢,因为入门机器学习,是需要有高数的底子的,可不是以前学一个语言,会常用逻辑就可以入门的了,这也是为什么到现在为止,依然还有非常大的机器学习人才缺口,再说一下为什么自己做爬虫不建议使用机器学习,三个字,玩不起,

首先,你需要有大量的数据,然后再有一个不错的主机用于训练,再然后,就是需要你有高数的底子,如果这三个都有,并且学习了机器学习,你才可以勉强破解滑动验证码,并且不敢保证自己训练的准确度,

这就是我推荐使用第三方接口的原因,因为第三方接口就是专门做这类机器学习的,它们有强大的人力物力专门做破解各种验证码,并且识别率非常高,现在一般都是90%以上,价格还香,何乐不为了,自己做是头发掉的少还是加不够多

当然,并不是说我不让学习机器学习,毕竟现在是一个人工智能时代,如果已有不错的数学基础,并且有很强大兴趣,在工作之余,可以入坑机器学习的,毕竟趋势如此,

本人的观点是,如果是爬虫遇到了滑动验证码,直接使用第三方平台,如果你很有研究兴趣,继续需坑机器学习,

本文使用的第三方服务:https://2captcha.com/

根据本人测试,是目前识别率最高的平台,价格还行,3美元几百次吧

所需工具

En.... 我们这里不需要 selenium,2captcha打码平台很神奇,来看我细细讲解

2captcha打码平台参数分析

既然我们选择了第三方平台,我们务必要看一下人家的文档。

首先打开人家官网

嗯...纯英文,我也看不懂..怎么办呢,别着急,我带你们一步一步分析主要功能

登录账号

登录完成后,会自动跳到主页

红色圈起来的地方表示剩余多少钱,没有钱的话记得要氪金,否则是不能用滴,氪金过程这里就不多做解释了哈,问题不大

蓝色圈起来的地方表示这是你的唯一key,每次请求要带上这个key的,所以要保管好

进入主题,研究文档

点击红色圈的地方,API,一般API都是文档,come

En....什么玩意..完全看不懂,别慌,往下滑

滑动到Rates,我们能看到一个列表,我们要解决的就是极验(GeeTest),所以我们只看GeeTest就好了,点击GeeTest,look

好了,我已经懵逼了,但是,怕什么,我们有翻译!!!

这里大概整理一下它的意思

首先,找到目标网站的gt,challenge和api_server三个值,然后,加上其他一些参数发送到 https://2captcha.com/in.php,会返回一个任务ID

然后等个15秒左右以后,再像https://2captcha.com/res.php请求,带上任务ID加上一些其他参数

开始行动

  1. 在目标网站上找到gt,challenge,api_server三个东西,我们切换到dilidili找一下

我们点击network,刷新网页,重新加载所有请求,crtl+f,搜索challenge

竟然找到了,但是到底之不是这个呢,人家2captcha文档说了,通常可以在initGeetest发现他,我们尝试下

点击Elements,ctrl+shift+f全局搜索一下,搜索initGeetest

还真有一个,我们点进去看看

还真有这个,我们打上断点,再次刷新,匹配一下是否和network里的一样

上面是断点的值,下面是network的值,至少看着一样的,我们至少可以确定,有很大关系

至少我们确定了两个值,gt和challenge,还差一个api_server

我们随便输入账号密码点击登录一下,触发一下极验,在elements中,搜索api_server

红色圈起来的地方就表示是api_server,ok,基本工作基本完成

  1. 刚才我们也说了,参数都找齐了,那我们就该请求打码平台了

那我们,就干呐,前面说到,在network中,请求 https://passport.bilibili.com/web/captcha/combine?plat=11  就可以获得gt,challenge,外加一个key

Ok,我们来请求一下

这样,我们就拿到了gt,challenge

我们请求一下打码平台的接口,带上自己参数

打码平台需要请求两次,第一次返回的是任务ID,第二次才是滑动模块的成功值

注:challenge是动态的,其他的是静态的

API_KEY是打码平台的key,开头介绍的那个

两个函数,我们就成功的拿到了打码平台返回的值

红色圈起来的,就是破解极验的第一个关键参数,这个参数拿到之后呢,就已经跟人家打码平台没关系啦,我们只需要带着相关参数,登录哔哩哔哩就好了,但是这个参数要往哪发呢,在network经过一番查找后,似乎发现一个和登录有关的接口

我们可以看到,红色框圈起来的部分,正式2captcha平台返回给我们的数据,key,正是 ...combine?plat=11  url返回的key,就是password,进行了加密,他是如何加密的呢

经过不断的断点,不断地断点...终于确定了,密码会经过这个函数进行加密,它本质是 RSA非对称加密 听着就吓人,不慌,盘它,

这个函数逻辑是先请求一个xxx这个url,带上一个随机数,然后会返回一个随机hash,和一个公钥key,公钥key是固定的,然后将随机hash和密码进行加密,发送后他后,后台进行解密

破解代码

通过上述两个函数,就模拟出了密码,最后,

我们只需要提交到后台就可以了,

示例效果

如果账号密码错误

如果账号密码正确

第一个表示跳转的url,第二个是返回的cookie,如果我们在请求哔哩哔哩的其他东西,只需要带着这个cookie就好了,ok,结束

完整代码

哔哩哔哩.txt

利用Python进行破解哔哩哔哩登录相关推荐

  1. 利用Python暴力破解邻居家WiFi密码

    如觉得博主文章写的不错或对你有所帮助的话,还望大家多多支持呀!关注.点赞.收藏.评论. 文章目录 一.编写代码 二.展示测试结果 三.测试 四.生成密码本(建议自己找一个密码本) 一.编写代码 在桌面 ...

  2. 如何利用Python强势破解今日头条(巨量)滑块验证码!

    开头语: 除非是很简单的参数能够解决滑块问题或者追求效率的业务,否则的话,我还是会selenium来解决,并且接下来的验证码模式的话不需要使用到原图进行比较!!我发现很多网站都是基于比较原图,发现缺口 ...

  3. python爬虫--破解js加密:kankan登录破解

    这一系列文章旨在解决python 爬虫过程中遇到的各种反爬,从简单到复制,是个进阶的过程.如果对你有帮助,欢迎关注. 今天要破解的网站是天天看看(http://www.kankan.com/)的登录, ...

  4. python paste_利用Python模拟登录pastebin.com的实现方法

    任务 在https://pastebin.com网站注册一个账号,利用python实现用户的自动登录和创建paste.该任务需要分成如下两步利用python实现: 1.账号的自动登录 2.paste的 ...

  5. 利用python批量合并手机哔哩哔哩下载的视频各分段

    从手机哔哩哔哩上下载的一个电视剧,分为很多P,每一P里面又被分成了如下几个段的blv文件(本质上是flv格式),利用Python+ffmpeg,将这个系列的视频每一P都合并成单个的文件,只要输入这个视 ...

  6. Python奇淫技巧之自动登录哔哩哔哩

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 昔我往矣,杨柳依依.今我来思,雨雪 ...

  7. python 导航框 | 哔哩哔哩推荐100万收藏的导航网页

    import tkinter as tk import time from tkinter import * gwin=None import webbrowser def cmd(x): def i ...

  8. 菜鸟弟弟从零开始的爬取Bilibili弹幕的Python爬虫教程-哔哩哔哩 - ( ゜- ゜)つロ 干杯~

    从零开始的爬取Bilibili弹幕的Python爬虫教程 或许可以作为一个爬虫小白的练手的demo? 还是先看看什么是爬虫吧!(还有Bilibili! ) 网络爬虫: 网络爬虫(又称为网页蜘蛛,网络机 ...

  9. Python+BeautifulSoup+Selenium模拟浏览器循环自动播放视频,如哔哩哔哩某个UP主的视频

    1.前言 计算机的出现,推动了人类社会的进步,使得人们更高效的工作或是生活.当我们很"懒"的时候,计算机就能站出来,帮助我们做一些我们觉得浪费时间的事情了.你嫌用手点鼠标麻烦,计算 ...

最新文章

  1. 强烈推荐Bulletproof Ajax 中文版
  2. CodeForces - 1355E Restorer Distance(三分)
  3. LiveVideoStack主编观察回归 05/
  4. 一个“小白”眼中的容器
  5. 大学计算机在线阅读,大学计算机基础作业与答案.doc
  6. java数据源是什么_《java数据源—连接池》
  7. Foundatio - .Net Core用于构建分布式应用程序的可插拔基础块
  8. 64位ubuntu安装交叉编译器出现的问题。nuc972工程中的问题
  9. 使用linux内核编译独立系统,编译linux内核以及depmod的使用
  10. java订单超时取消设计_PHP如何实现处理过期或者超时订单的,并还原库存
  11. 12篇文章带你逛遍主流分割网络
  12. turtle库的学习
  13. 使用R语言中的spgwr包进行GWR模型的相关运算
  14. Android控件开发之Gallery3D酷炫效果(带源码)
  15. 腾讯大讲堂 微信红包系统设计 优化
  16. 信息系统基础知识(笔记)
  17. Spark的基本工作流程
  18. js将数组对象中属性值相同的对象合并成一个children
  19. 《计算机网络 第7版》第9章 无线局域网的物理层和MAC层
  20. cadence电阻在哪个库_cadence元件库介绍

热门文章

  1. 高强度螺栓检测送检规则 中钢国检检测单位
  2. traceroute命令初探
  3. BindingNavigator 类 - MSDN
  4. 质量管理方法不是时尚品(转载)
  5. 一字长计算机,计算机中一个字到底等于多少个字节啊
  6. Hadoop架构模型
  7. 冒险岛与服务器中断连接,冒险岛官方网站(MapleStory)-爱我就来冒险吧!
  8. matlab 后台运行,MATLAB在后台运行的方法
  9. 2020秋招提前批 柠檬微趣笔试题目
  10. CSS+DIV网页布局