谷歌验证码破解python+selenium模拟点击+第三方图像识别api,附带源码

基于第三方平台的谷歌验证码识别

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
api价格
在这里插入图片描述

在这里插入图片描述

api Site: https://www.recaptcha.press
注:自己注册账号获得Token

在这里插入图片描述述
运行dome.py测试
在这里插入图片描述

dome.py

# encoding: utf-8
"""
@author: _Jack Sparrow
@time:  2021/7/6 10:17
@file: domes.py
@desc:
@ api site : https://www.recaptcha.press
"""
import random

from yanzhma import tianyancha
import time
import requests
from selenium import webdriver

class ThroughReCAPTCHA():
    def __init__(self ,token , browser, proxySocket=None):
        self.browser = browser
        self.proxySocket = proxySocket
        self.token = token

    def getIframe(self):
        """
        iframe框架识别:锁定验证码iframe框架
        :return:
        """
        iframeList = []
        iframeNodeAll = self.browser.find_elements_by_tag_name('iframe')
        for iframe in iframeNodeAll:
            if iframe.get_attribute("title") == "recaptcha challenge" or iframe.get_attribute("title") == "reCAPTCHA" or iframe.get_attribute("title") == "reCAPTCHA 验证":
                iframeList.append(iframeNodeAll.index(iframe))
            else:
                if iframe.get_attribute("name") == "recaptcha":
                    iframeList.append(iframeNodeAll.index(iframe))
                    self.browser.switch_to.frame(iframeNodeAll.index(iframe))
                    iframeNodeAll = self.browser.find_elements_by_tag_name('iframe')
                    newIframeList = []
                    for iframe in iframeNodeAll:
                        if iframe.get_attribute("title") == "recaptcha challenge" or iframe.get_attribute("title") == "reCAPTCHA" or iframe.get_attribute("title") == "reCAPTCHA 验证":
                            newIframeList.append(iframeNodeAll.index(iframe))
                    self.browser.switch_to.default_content()
                    iframeList.append(newIframeList)
        return iframeList

    def getValidationIamgeLink(self, xPath=None):
        """获取验证码图片link"""
        if xPath is None:
            validationImageNode = self.browser.find_element_by_xpath('/html/body/div/div/div[2]/div[2]/div/table/tbody/tr[1]/td[1]/div/div[1]/img')
        else:
            validationImageNode = self.browser.find_element_by_xpath(xPath)
        return validationImageNode.get_attribute("src")

    def getValidationType(self):
        """
        获取验证码类型
        :return: 返回两种类型:33 and 44333x3图形, 444x4图形
        """
        validationImageNode = self.browser.find_element_by_xpath('/html/body/div/div/div[2]/div[2]/div/table/tbody/tr[1]/td[1]/div/div[1]/img')
        return validationImageNode.get_attribute("class").replace("rc-image-tile-","")

    def getValidationKeys(self):
        """获取验证目标名称"""
        keys = self.browser.find_element_by_xpath("/html/body/div/div/div[2]/div[1]/div[1]/div/strong")
        return keys.text

    def updateValidationImage(self):
        """点击刷新更换验证码图片"""
        self.browser.find_element_by_xpath("/html/body/div/div/div[3]/div[2]/div[1]/div[1]/div[1]/button").click()
        time.sleep(1)

    def checkValidation(self):
        """验证通过验证码"""
        self.browser.find_element_by_xpath("/html/body/div/div/div[3]/div[2]/div[1]/div[2]/button").click()
        #todo 检测是否已经通过验证码
        time.sleep(3)
        jsCode = """
        var button = document.querySelector("#recaptcha-verify-button");
        if(button.getAttribute("tabindex")=="0"){
   
            return false
        }else {
   
            return true
        
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_JackSparrow

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值