Selenium как обойти recaptcha и отправку автоматических запросов
Я использую метод с распознаванием аудиофайлов, но капча периодически блокирует мне использование этого метода. И я бы с удовольствием ввел эту капчу, используя ключ сайта, но форма авторизации Angular не позволяет мне просто ввести токен в поле ввода капчи, как в этом видео https://youtu.be/MWh29nUrbKM . Я хотел бы найти способ обойти блокировку captcha (отправка автоматических запросов) или просто найти способ, как я мог бы обойти проверку формы в Angular и просто нажать на кнопку входа в систему без необходимости решать captcha вручную. Вот веб-сайт с формой https://visa.vfsglobal.com/rus/en/fra/login
Заранее хочу сказать, что я использую 15 прокси-адресов и каждый раз меняю пользовательский агент
Пример кода с распознаванием текста
try:
driver.switch_to.frame(wait_element('/html/body/app-root/div/app-login/section/div/div/mat-card/form/app-captcha-container/div/div/div/iframe'))
print("IFRAME")
save_click('//*[@id="recaptcha-anchor"]/div[1]')
print("CLICK")
except:
print("__!__")
raise Exception('Captcha not founded')
driver.switch_to.default_content()
driver.switch_to.frame(wait_element('/html/body/div[4]/div[4]/iframe'))
print("aud")
time.sleep(1.21)
try:
save_click('//*[@id="rc-imageselect"]/div[3]/div[2]/div[1]/div[1]/div[2]')
except Exception as ex:
print(ex)
print("EXE")
print("click")
mp3_file = 'aud2.mp3'
captcha = False
try:
time.sleep(1)
driver.find_element(By.XPATH,'/html/body/div/div/div[1]/div[1]')
except:
captcha = True
if captcha:
try:
wait_element('//*[@id="rc-audio"]/div[7]/a')
except:
raise Exception('Captcha is blocked')
else:
raise Exception('Captcha is blocked')
with open(mp3_file, 'wb') as f:
link = wait_element('//*[@id="rc-audio"]/div[7]/a').get_attribute('href')
audio_download = requests.get(url=link, allow_redirects=True)
f.write(audio_download.content)
f.close()
sound = AudioSegment.from_mp3("aud2.mp3")
sound.export("aud.wav", format="wav")
with sr.AudioFile(f'{os.path.dirname(__file__)}/aud.wav') as source:
recorded_audio = recognizer.listen(source)
print("Done recording")
captchasolve = ''
try:
print("Recognizing the text")
captchasolve = recognizer.recognize_google(
recorded_audio,
language="en-US"
)
print(captchasolve)
except Exception as ex:
print(ex)
raise Exception("Recognizing failed")
driver.execute_script('document.getElementsByClassName("rc-response-input-field")[0].value = arguments[0]', captchasolve)
save_screenshot("solve.png")
time.sleep(1.21)
Wait(driver, 10).until(EC.element_to_be_clickable((By.ID, 'recaptcha-verify-button'))).click()
driver.switch_to.default_content()