破解bilibili滑块验证码

本文介绍了如何利用Python3解析并破解bilibili的滑块验证码。通过logging模块记录信息,get_image函数下载缺口和完整图片,然后在recover_image函数中进行处理。进一步,通过simulate_drag和get_track函数模拟拖动滑块,并在get_diff_x中通过比对x轴RGB差值来确定缺口的x坐标。
摘要由CSDN通过智能技术生成

基本逻辑:

logging -----------------------》get_image(下载带缺口的图片和不带缺口的图片) ----------------------》 recover_image

                                                                                                                                                            |

                                                                                                                                                            |

                                        simulate_drag《---------------get_track 《-------------get_diff_x(比对x轴RGB差值获取缺口x坐标)

话不多说,直接贴代码

#!/usr/bin/python3
# -*- coding: utf-8 -*-

"""
author NJ

破解 哔哩哔哩 滑块验证码
"""
import os
import random
import urllib.request

import requests
import logging
import time
import re
from selenium import webdriver
from PIL import Image
from io import BytesIO
from selenium.webdriver.common.action_chains import ActionChains


class Bilibili(object):
    js = """var keys=document.cookie.match(/[^ =;]+(?=\=)/g);
            if (keys) {
            for (var i = keys.length; i--;)
            document.cookie=keys[i]+'=0;expires=' + new Date( 0).toUTCString()
            } """

    def __init__(self):
        super(Bilibili, self).__init__()
        self.browser = webdriver.Chrome()
        self.browser.set_page_load_timeout(20)   #设定页面加载时间
        self.browser.implicitly_wait(10)        #隐式等待

    def __del__(self):
        """析构函数"""
        if self.browser is not  None:
            self.browser.quit()

    def get_image(self,class_name):
        """
        从网页中下载打乱的图片
        :param class_name: 传进去的包含图片地址的classname
        :return: 返回拼凑好的完整图片
        """
        image_list = self.browser.find_elements_by_class_name(class_name)
        if len(image_list) &#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值