基于pyppeteer 破解极验滑块验证码

        本文章主要介绍 如何使用pyppeteer破解滑块验证码,主要分为3个步骤:

1.下载滑块验证码的原图和缺口图片。

2.计算缺口偏移量

3.模拟滑块滑动,并处理结果

        首先这次的目标网站是国家企业标准网:http://www.qybz.org.cn/standardProduct/toAdvancedResult.do(该网站已经改变,滑块处理逻辑还是通用)

这个网站打开的时候就有一个滑块验证码需要点击,首先是获取原图和缺口图

import asyncio
import base64

import random
import time

from parsel import Selector
from PIL import Image, ImageChops
import matplotlib.pyplot as plt
from pyppeteer import launch


async def get_pic(page):
    '''获取图片  '''
    fulljs = """
                () => { return document.getElementsByClassName("geetest_canvas_fullbg")[0].toDataURL("image/png") }
                """
    fadejs = """
                () => {  return document.getElementsByClassName("geetest_canvas_bg geetest_absolute")[0].toDataURL("image/png")}
                """
    full_img = await page.evaluate(fulljs)
    await get_decode_image(filename="./img/fullbg.png", data=full_img)
    await asyncio.sleep(0.1)
    fade_img = await page.evaluate(fadejs)
    await get_decode_image(filename="./img/fadebg.png", data=fade_img)

async def get_decode_image(filename, data):
    _, img = data.split(",")
    img = base64.b64decode(img)
    with open(filename, "wb") as f:
        f.write(img)

图片样例:

接下来就是计算缺口的距离:

async def compute_gap(img1, img2):
    plt.cla()
    img1 = Image.open(img1)
    img2 = Image.open(img2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值