哔哩哔哩实战----验证码识别

利用Selenium来模拟B站登录,并实现线极验验证码的识别。

初步分析

B站的登录界面如下:

登录需要完成:1、账户输入;2、密码输入;3、登录后需要通过滑块来进行验证;

难点就是如何去实现滑块验证并且模仿人的操作。

导入包:

import time
from io import BytesIO
from PIL import Image
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 WebDriverWait

初始化

建立实现类,设置账号、密码、浏览器对象、等待对象、url参数,进行初始化:

class bilibili():def __init__(self, phone, password):"""初始化:param phone: 账号:param password: 密码"""chrome_options = webdriver.ChromeOptions()chrome_options.add_argument('start-fullscreen')self.browser = webdriver.Chrome(options=chrome_options)self.wait = WebDriverWait(self.browser, 15)self.url = 'https://passport.bilibili.com/login'self.phone = phoneself.password = password

打开B站进行登录

  1. 打开B站:browser.get()

  2. 查找输入账号、密码、登录节点;

  3. 输入账号、密码:send_keys()

  4. 点击登录:click()

def open(self):"""打开网页,输入账号、密码,点击"""self.browser.get(self.url)phone = self.wait.until(EC.presence_of_element_located((By.ID, 'login-username')))password = self.wait.until(EC.presence_of_element_located((By.ID, 'login-passwd')))button = self.wait.until(EC.element_to_be_clickable((By.CLASS_NAME, 'btn.btn-login')))phone.send_keys(self.phone)password.send_keys(self.password)button.click()

完成上述后,就会出现验证图片。

滑块验证图片分析

实现滑动验证,首先是需要找到移动的位置,这是关键。

思路是:找到残缺图和原图,进行像素的比较,找到不同的位置(相差大于某个阈值)

1、如何显示残缺图(不带

【Python爬虫】【2020最新哔哩哔哩验证码识别实战】【滑块验证码】【附源码】相关推荐

  1. Python爬虫鲁迅先生《经典语录》保存到Excel表格(附源码)

    Python爬虫鲁迅先生<经典语录>保存到Excel表格(附源码) 前言 今天用Python 爬取鲁迅先生<经典语录>,直接开整~ 代码运行效果展示 开发工具 Python版本 ...

  2. Python爬虫爬取表情包+Autojs微信自动导入表情包脚本(附源码)

    废话不多说直接开始 Python爬取表情包 一.检查网页源码 发现可以找到图片地址,直接请求图片地址下载图片 二.打开开发者工具(F12) 通过xpath提取p标签下的img标签src属性为图片地址 ...

  3. python爬虫入门教程|爬取游民福利,大量妹子图片,源码 + 多张福利

    点赞再看,养成习惯 文章目录 分析一下 步骤 源码 一键运行下载本地 待解决 难点 有这样一个网站,对它做了一下爬取,先看看效果,这样. 上图是一小部分,目测大概有 260*20*66+ ,下面就授人 ...

  4. 【敬初学者】Python基础学完了,该怎么知道自己学的怎么样呢?十个经典实战小项目附源码

    前言 1.街霸游戏 1.1 KO街霸 程序完整源码 程序的输出界面 1.2 春丽VS巴洛克 参考源码 2.猜谜游戏 2.1简单的猜数字游戏 项目要求 参考源码 2.2 进阶的猜姓名游戏 项目要求 参考 ...

  5. python爬取小游戏_如何用Python爬取小游戏网站,把喜欢的游戏收藏起来(附源码)...

    简介: Python 是一门简单易学且功能强大的编程语言,无需繁琐的配置,掌握基本语法,了解基本库函数,就可以通过调用海量的现有工具包编写自己的程序,轻松实现批量自动化操作,可以极大提高办公和学习效率 ...

  6. 100个Python实战项目(附源码),练完即可就业,从入门到进阶

    前言: "读"代码是不能给你带来任何收益的,正如"读书"一样,如果在读的时候你不琢磨,保管你读完仨月准忘了一大半.真正需要的是去"试"代码, ...

  7. Python一键获取某排名第一的手游,所有英雄皮肤(附源码)

    目录 最近总是有老妹喊我打王者带她们上分,但是我吧不经常玩,有哪些皮肤,叫什么名字,长啥样都不知道,万一妹妹问起来答不上岂不是很尴尬! 这不得先把功课做足了,于是我用Python把这些皮肤全部给爬下来 ...

  8. 如何用Python爬取小游戏网站,把喜欢的游戏收藏起来(附源码)

    简介: Python 是一门简单易学且功能强大的编程语言,无需繁琐的配置,掌握基本语法,了解基本库函数,就可以通过调用海量的现有工具包编写自己的程序,轻松实现批量自动化操作,可以极大提高办公和学习效率 ...

  9. 20个python数据分析实战项目(附源码)

    1.用python制作炫酷的滚动地球 https://mp.weixin.qq.com/s/mTBhLsO6IuU7l4rme1G1yw 2.python数据分析--pyecharts柱状图全解(小白 ...

  10. 【Python游戏】Python基于pygame实现的人机大战的斗兽棋小游戏 | 附源码

    前言 有粉丝说要我出一期Python版本的斗兽棋,今天宠粉狂魔的我不就来啦!! 虽然是一个简单的小游戏,但是对于新手小伙伴来说还是有一定的小难度的哟!要是不理解都可以找到小编的哈!! 相关文件 关注小 ...

最新文章

  1. mysql row 转int_mysql_row[]取值转换有关问题,
  2. 响应时登录html,HtmlUnit:单击不响应时登录HtmlElement
  3. 学习Git的最佳资料
  4. ConcurrentMap接口
  5. Yolov1-手把手用自己的数据集训练自己的模型
  6. 数学建模灵敏度分析_数学建模中的灵敏度分析,到底在分析什么?
  7. 算法动画 - 理解函数曲线
  8. ApacheCN JavaScript 译文集(二) 20211123 更新
  9. sql 删除重复记录
  10. uni-app android白屏,uniapp页面跳转出现白屏怎么办
  11. js-权威指南学习笔记4
  12. 计算机主机内部接口示意图,电脑主机后面六个孔图解 电脑的各个接口详解
  13. ATFX:美联储会议纪要发布后,美元指数逼近105关口
  14. 木马手工查杀和隐藏控制技术分析
  15. Python实现草莓熊手拿风车和鲜花
  16. ssm+jsp计算机毕业设计车辆违章查询系统2hie7(程序+LW+源码+远程部署)
  17. 细说华为和荣耀的关系:潮流的荣耀和稳重的华为
  18. VC++游戏编程----游戏画面特效制作1
  19. Python实验数据处理
  20. 车贷需要注意的问题,车贷风控流程这几点你必须知道

热门文章

  1. GeoGebra画傅里叶级数图像(step by step)
  2. 统计方法选择思维导图(医学科研)
  3. 万能ghost 制作
  4. Go的Slice和数组
  5. 中职计算机应用基础教学进度,[形成性评价在中职《计算机应用基础》教学中的应用]计算机应用基础 2018...
  6. 1/n之和——调和级数
  7. 物联网与python的联系_python和物联网
  8. 手机号码归属地免费查询接口
  9. Sygate3.0 的用法
  10. 三星(samsung)手机i699内容:解锁boot loader,刷recovery,刷机(刷rom),root综合教程