一、 使用reCaptchaBypasser库
1 -安装 ffmpeg
2 - pip install pydub
3 - pip install selenium
4 - pip install SpeechRecognition
5 - pip install reCaptchaBypasser
https://www.gyan.dev/ffmpeg/builds/ 选择ffmpeg-5.0.1-essentials_build.zip 下载
将ffmpeg.exe,ffplay.exe,ffprobe.exe 三个文件放到项目同文件夹下
def audio_captcha(self): #语音识别验证码from reCaptchaBypasser import reCaptchaScraperreCaptcha = reCaptchaScraper(self.driver, SleepTime=3)res = reCaptcha.reCaptchaGoogleV2()if res["Response"] == True:print("ByPassed !!!")return Trueelse:print("Try Again !!!")print("reCaptchaTextKey ==> ", res["reCaptchaTextKey"])return Falsedef verify_google_captcha(self):src = self.driver.execute_script('''var src_data=document.querySelector('iframe[title="reCAPTCHA"]');if(src_data){return src_data.getAttribute('src')}''')if src or 'https://www.google.com/recaptcha/api2/anchor' in self.driver.page_source:print('出现谷歌验证码')result = self.audio_captcha()return resultelse:return True
案例:from selenium import webdriver
from reCaptchaBypasser import reCaptchaScraper
import time
chrome_path = r'C:\Users\Administrator\AppData\Local\Google\Chrome\Application'  # 浏览器路径
executable_path = f'{chrome_path}\chromedriver_win32\chromedriver.exe'
driver = webdriver.Chrome(executable_path =executable_path)
url='https://www.google.com/recaptcha/api2/demo'
driver.get(url)
time.sleep(5)
reCaptcha = reCaptchaScraper(driver, SleepTime=3)
res = reCaptcha.reCaptchaGoogleV2()
if res["Response"] == True:print("ByPassed !!!")
else:print("Try Again !!!")print("reCaptchaTextKey ==> ", res["reCaptchaTextKey"])

二、

改自https://github.com/QIN2DIM/armour-recaptchacore.py 文件import os
import time
from random import randint
from time import sleep
import pydub
import requests
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver import Chrome
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.expected_conditions import presence_of_element_located
from selenium.webdriver.support.wait import WebDriverWait
from speech_recognition import Recognizer, AudioFiledef activate_recaptcha(api: Chrome) -> str:"""激活 reCAPTCHA 人机验证,并跳转至声纹识别界面,返回声源文件的下载地址:param api: 为了消除 driver 指纹特征,可在高并发场景使用  undetected_chromedriver.v2 替代 selenium"""# 定位并切换至 reCAPTCHA iframerecaptcha_iframe = WebDriverWait(api, 10).until(presence_of_element_located((By.XPATH, "//iframe[@title='reCAPTCHA']")))api.switch_to.frame(recaptcha_iframe)# 点击并激活 recaptchaapi.find_element(By.CLASS_NAME, "recaptcha-checkbox-border").click()# 回到 main_frameapi.switch_to.default_content()# 切换到 main_frame 中的另一个 frameapi.switch_to.frame(api.find_element(By.XPATH, "//iframe[@title='reCAPTCHA 验证将于 2 分钟后过期']"))sleep(randint(2, 4))# 点击切换到声纹识别界面api.find_element(By.ID, "recaptcha-audio-button").click()sleep(randint(2, 4))# 点击播放按钮try:api.find_element(By.XPATH, "//button[@aria-labelledby]").click()except NoSuchElementException:return ""# 定位声源文件 urlaudio_url = api.find_element(By.ID, "audio-source").get_attribute("src")return audio_urldef handle_audio(audio_url: str) -> str:"""reCAPTCHA Audio 音频文件的定位、下载、转码:param audio_url: reCAPTCHA Audio 链接地址:param dir_audio_cache: 音频缓存目录:return:"""# 拼接音频缓存文件路径timestamp_ = int(time.time())path_audio_mp3 = "audio.mp3"path_audio_wav = "audio.wav"# 将声源文件下载到本地print(audio_url)res = requests.get(audio_url)try:os.remove("audio.mp3")except Exception:audio_file = open("audio.mp3", "wb")audio_file.write(res.content)audio_file.close()else:audio_file = open("audio.mp3", "wb")audio_file.write(res.content)audio_file.close()# urllib.request.urlretrieve(audio_url, path_audio_mp3)# 转换音频格式 mp3 --> wavpydub.AudioSegment.from_mp3(path_audio_mp3).export(path_audio_wav, format="wav")# 返回 wav 格式的音频文件 增加识别精度return path_audio_wavdef parse_audio(path_audio_wav: str, language: str = None) -> str:"""声纹识别,音频转文本:param path_audio_wav: reCAPTCHA Audio 音频文件的本地路径(wav格式):param language: 音频文件的国际化语言格式,默认 en-US 美式发音。非必要参数,但可增加模型精度。"""language = "en-US" if language is None else language# 将音频读入并切割成帧矩阵recognizer = Recognizer()audio_file = AudioFile(path_audio_wav)with audio_file as stream:audio = recognizer.record(stream)# 流识别answer: str = recognizer.recognize_google(audio, language=language)# 返回短音频对应的文本(str),en-US 情况下为不成句式的若干个单词return answerdef submit_recaptcha(api: Chrome, answer: str) -> bool:"""提交 reCAPTCHA 人机验证,需要传入 answer 文本信息,需要 action 停留在可提交界面:param api: 为了消除 driver 指纹特征,可在高并发场景使用  undetected_chromedriver.v2 替代 selenium:param answer: 声纹识别数据"""try:# 定位回答框input_field = api.find_element(By.ID, "audio-response")# 提交文本数据input_field.clear()input_field.send_keys(answer.lower())# 使用 clear + ENTER 消除控制特征input_field.send_keys(Keys.ENTER)return Trueexcept (NameError, NoSuchElementException):return Falserun.py 文件import time
from selenium.common.exceptions import WebDriverException,TimeoutException
from core import activate_recaptcha, submit_recaptcha, handle_audio, parse_audio
from selenium import webdriver"""
将ffmpeg.exe,ffplay.exe,ffprobe.exe 三个文件放到项目同文件夹下
"""class CatWalk:def __init__(self):chrome_options = webdriver.ChromeOptions()chrome_options.add_argument('--ignore-certificate-errors')chrome_options.add_argument('--ignore-ssl-errors')chrome_options.add_argument('--enable-extensions')executable_path = r'C:\Users\Administrator\AppData\Local\Google\Chrome\Application\chromedriver_win32\chromedriver.exe'self.driver = webdriver.Chrome(executable_path=executable_path, chrome_options=chrome_options)@staticmethoddef get_html_handle(self, url, wait_seconds: int = 15):self.driver.set_page_load_timeout(time_to_wait=wait_seconds)self.driver.get(url)def utils_recaptcha(self):"""处理 SSPanel 中的 Google reCAPTCHA v2 Checkbox 人机验证。使用音频声纹识别验证而非直面图像识别。> 无论站点本身可否直连访问,本模块的执行过程的流量必须过墙,否则音频文件的下载及转码必然报错。> 可能的异常有:- speech_recognition.RequestError- http.client.IncompleteRead"""time.sleep(2)# 激活 reCAPTCHA 并获取音频文件下载链接audio_url: str = activate_recaptcha(self.driver)# Google reCAPTCHA 风控if not audio_url:raise WebDriverException# 音频转码 (MP3 --> WAV) 增加识别精度path_audio_wav: str = handle_audio(audio_url=audio_url)answer: str = parse_audio(path_audio_wav)print('answer:',answer)# 定位输入框并填写文本数据response = submit_recaptcha(self.driver, answer=answer)if not response:raise TimeoutExceptiondef sign_up(self,url="https://www.google.com/recaptcha/api2/demo"):self.driver.get(url)try:self.utils_recaptcha()# 回到 main-frame 否则后续DOM操作无法生效self.driver.switch_to.default_content()except TimeoutException:time.sleep(0.5)# Google reCAPTCHA 风控except WebDriverException:exit()if __name__ == '__main__':start = CatWalk()start.sign_up()

Python3 语音识别谷歌验证码相关推荐

  1. 谷歌验证码 ReCAPTCHA 的模拟点击破解方案来了!

    这是「进击的Coder」的第 631 篇技术分享 作者:崔庆才 大家好,我是崔庆才. 之前的时候我分享过 ReCAPTCHA 的破解方案,那种方案是获取到 ReCAPTCHA 其中的一个 SiteKe ...

  2. 谷歌了java集成开发_Spring整合Kaptcha谷歌验证码工具的开发步骤

    开发步骤: 1.加入依赖 com.google.code.kaptcha kaptcha 2.3 国内镜像无法下载该依赖,需要手动通过jar包在本地仓库安装一个依赖. 安装命令: mvn instal ...

  3. AI重新定义web及谷歌验证码安全

    AI重新定义web及谷歌验证码安全 云给安全带来的影响 云化导致以硬件设备为主的传统安全方式失效 云化导致攻击/作恶成本大大降低 云化导致业务可控性降低 安全产品需要变革 机器学习是解决安全问题的金钥 ...

  4. 谷歌验证码recaptcha接入

    recaptcha是一项谷歌免费验证码服务,本次接入的是reCaptcha v2 1.首先选择reCaptcha的类型,注册申请api密钥对,包含站点密钥和密钥组成,站点密钥用于在网站调用reCAPT ...

  5. Android语音识别——谷歌语音识别与百度语音识别

    Android语音识别,简单的理解就是把语音转化为文字. 在日常中,语音识别,车载导航.语音输入等,虽然不一定准确,但用途广泛. 这里就介绍下谷歌原生的语音识别与百度的语音识别 谷歌语音识别 谷歌语音 ...

  6. 谷歌验证码,国内各种验证码识别

    谷歌验证码,国内各种验证码识别 自己上去看看 https://2captcha.com?from=10002070

  7. 爬虫碰到谷歌验证码的一些解决思路

    最近在写一个国外某电商网站的刷单脚本,在注册账号这一步时碰到了谷歌验证码. 一.避开谷歌验证码 尽可能的使部署环境稳定,同时做好伪装.比如使用PPTP拨号换ip,可以通过访问whoer.net来查看i ...

  8. 谷歌验证码 reCaptcha V2 图像识别开发接口

    此对象不会返回 RESPONSE, 只返回图像识别结果! 请无接入能力的用户避免使用! 创建任务 通过 createTask方法 创建识别任务 请求地址:https://api.yescaptcha. ...

  9. kaptcha谷歌验证码使用

    1.添加pom.xml依赖 在maven工程中的pom.xml文件中添加依赖如下 <!--验证码--><!-- https://mvnrepository.com/artifact/ ...

  10. Python3 调用谷歌翻译 英汉互译

    Python3 调用谷歌翻译 将英文翻译成中文 代码如下: import urllib.request import execjsclass Py4Js():def __init__(self):se ...

最新文章

  1. 小R SLAM机器人树莓派3b+ ROS kinetic 环境搭建笔记
  2. Ubuntu Linux下如何配置Android开发环境
  3. 计算机桌面窗口移动有虚影,win7系统桌面出现残影影响心情?一招帮你解决问题...
  4. Sublime Text Package Control错误另解
  5. 开发中的问题——环境相关
  6. Dapr + .NET 实战(七)Secrets
  7. leetcode 140. 单词拆分 II(记忆化)
  8. 360极速浏览器连接远程notebook会出现问题,403 GET /api/kernels/
  9. 【汇编】汇编程序入门篇
  10. SQL 引擎如何把语句转换为一个抽象语法树?
  11. Java Architecture [JAVA的架构]
  12. C语言基础专题 - 数据类型与强制类型转换(编辑中)
  13. 图像复原matlab论文,基于matlab图像复原论文
  14. C++ 解析pcap文件
  15. Python之爬虫之BeautifulSoup学习
  16. 网络攻防之wireshark抓取登录信息
  17. §6.5 分离性公理与子空间,(有限)积空间和商空间
  18. vbs自动登陆115网盘代码
  19. 【计算机网络】第六话·数据的传输方式(上)
  20. Python之qq自动发消息

热门文章

  1. win10计算机管理权限,win10如何获取管理员权限?win10获取最高权限的方法
  2. 显著性检测论文梳理(Saliency Detection)
  3. VS 下环境覆盖率测试
  4. 许奔创新社-第29问:什么是创新者的王者匠心?
  5. Gatekeeper:首个开源的DDoS防护系统
  6. 2021年4月11日-粤嵌智能小车兴趣课笔记(3)
  7. Excel分组数据、并创建多个新Excel文件
  8. HTML——倒计时制作
  9. win10如何查看服务器日志文件,win10日志文件在哪里?小编教你查看win10日志文件的方法...
  10. ibm是被联想收购了吗_联想集团收购IBM背后的苦