用python怎样实现滑动验证码呢?

本文手把手教你如何使用Python处理Bilibili的滑动验证码,通过selenium等库实现模拟登陆,详细讲解从获取验证码图片到拖动滑块的整个过程。
摘要由CSDN通过智能技术生成

手把手带大家实现Bilibili模拟登陆(滑动验证码)项目,来肝!

1. 为什么要处理滑动验证码

在很多时候我们在做模拟登陆的时候会遇到滑动验证码,这个时候就必须要处理。

2. 目标网站

bilibili视频网站的滑动验证码

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-84SzkWPr-1668861160014)(https://mmbiz.qpic.cn/mmbiz/A7icgZ2Ooga2ib08SFCUibOx0hn839LeoNLiadQcBliaibglLBCicMz6EYyvp7U6ErxXjicKpy0c5RKaPCDtSuBavX6zZA/640?wx_fmt=other&wxfrom=5&wx_lazy=1&wx_co=1)]

经过分析我们知道bilibili使用的是极验的拖动验证码

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-69FJ8asb-1668861160015)(https://mmbiz.qpic.cn/mmbiz/A7icgZ2Ooga2ib08SFCUibOx0hn839LeoNLAFHC32pCKicn5c0bWPs8tJqIIev7c2wBYrJOGZf5NdobiaVSvs3QhL7A/640?wx_fmt=other&wxfrom=5&wx_lazy=1&wx_co=1)]

3.项目的开发环境

本项目需要用到 selenium,io,PIL,time,random,请提前安装

请安装对应版本的库如下,其他库均为标准库,无需安装 pip3 install Pillow4.2.1 pip3 install selenium3.12.0

4.项目流程介绍

  1. 初始化
  2. 请求bilibili的登录页面&模拟输入账号密码
  3. 获取验证码图片&有阴影拼图的验证码图片
  4. 比较两个验证码图片获取验证码滑块的偏移量
  5. 使用偏移值计算移动操作
  6. 操作滑块按钮,模拟拖动滑块做验证登录

5.bilibili模拟登陆-初始化

#coding:utf-8
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from io import BytesIO
from PIL import Image
import time
import random

class Bilibili(object):

    def __init__(self):
        # 设置登录页面url
        self.url = 'https://passport.bilibili.com/login'

        # 创建浏览器对象
        self.driver = webdriver.Chrome()

        # 设置页面的隐式等待
        self.driver.implicitly_wait(3)

        # 设置账号密码
        self.user = '18668928175'
        self.pwd = '461324morganna'


    def login(self):
        """
            实现主要的登录逻辑
        """
        pass


    def run(self):
        self.login()

if __name__ == '__main__':
    bili = Bilibili()
    bili.run()

6.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值