Я пишу скрипт на python, который заполняет и отправляет регистрационную форму.Я использую веб-драйвер Selenium, потому что страница загружается с помощью JavaScript.
Я нашел способ решения reCaptcha.Капча отправляется людям, которые ее решают.Я получаю код, который ввожу в соответствующее поле.Я бы отправил его в запросе POST, но когда я попытался это сделать, мой запрос был отклонен.
Итак, мой скрипт заполняет поля и нажимает кнопку отправки (которую, вероятно, слушает js), но затем в разделеreCaptcha Я вижу «пожалуйста, заполните поле» каждый раз.Я пробовал смоделированный клик в reCaptcha iframe, но он не дает результатов.
Мой вопрос: могу ли я каким-то образом обмануть форму, чтобы javascript мог подумать, что это поле заполнено?В запросе будет правильное решение с использованием капчи, но мне нужно только отправить его.
На этой странице Вы можете увидеть пример reCaptcha и на этой странице, где яхочу заполнить форму.
Это мой код заполнения reCaptcha:
Отправка reCaptcha людям, которые ее решают:
result = NoCaptchaTaskProxyless.NoCaptchaTaskProxyless(anticaptcha_key = ANTICAPTCHA_KEY)\
.captcha_handler(websiteURL = regURL,
websiteKey = siteKey)
print(result)
СозданиеПоле ответа reCaptcha видимое:
captchaInput = driver.find_element_by_name("g-recaptcha-response")
driver.execute_script("arguments[0].style = 'display: block;';", captchaInput)
Заполнение поля ответа:
captchaInput.send_keys(result['solution']['gRecaptchaResponse'])
Отправка формы:
submit = driver.find_element_by_xpath("/html/body/div[1]/div/div/div[2]/div/div[3]/form/button")
submit.click()
И это результат: снимок экрана («Поле Proszę wypełnić» означает «Пожалуйста, заполните поле»)