Как обойти Google captcha с помощью Selenium и Python?
Я хочу знать, как обойти Google captcha с помощью Selenium и Python. Когда я пытаюсь что-то выбросить, Google дает мне капчу, могу ли я обойти капчу Google с помощью Selenium Python?
Например, это Google reCAPTCHA, вы можете увидеть эту капчу по этой ссылке: https://www.google.com/recaptcha/api2/demo
8 ответов
Для того, чтобы начать с использованием Selenium "s Python клиентов вы должны избегать решение / перепускной Google капчу.
Селен
Selenium автоматизирует браузеры. То, чего вы хотите достичь с помощью этой мощности, полностью зависит от отдельных лиц, но в первую очередь это касается автоматизации веб-приложений с помощью клиентов браузера для целей тестирования, и, грубо говоря, это, конечно, не ограничивается этим.
Капча
С другой стороны, Captcha (аббревиатура ... полностью автоматизированный общедоступный тест Тьюринга, чтобы отличить компьютеры и людей друг от друга ...) - это тип теста "вызов-ответ", используемый в вычислениях, чтобы определить, является ли пользователь человеком.
Итак, Selenium и Captcha служат двум совершенно разным целям и в идеале не должны использоваться для решения каких-либо взаимосвязанных задач.
Сказав, что, Recaptcha может легко обнаружить сетевой трафик и определить программу как Selenium управляемой СЭП.
Общее решение
Однако есть несколько общих подходов, позволяющих избежать обнаружения при сканировании веб-страниц:
- Первым и главным атрибутом, который веб-сайт может определить ваш сценарий / программу, является размер вашего монитора. Поэтому рекомендуется не использовать обычное окно просмотра.
- Если вам нужно отправить несколько запросов на веб-сайт, продолжайте менять User Agent для каждого запроса. Здесь вы можете найти подробное обсуждение Как изменить пользовательский агент Google Chrome в Selenium?
- Чтобы смоделировать человеческое поведение, вам может потребоваться замедлить выполнение скрипта даже за пределами WebDriverWait и expected_conditions, вызывающих
time.sleep(secs)
. Здесь вы можете найти подробное обсуждение того, как засыпать webdriver в python на миллисекунды.
Этот вариант использования
Однако в нескольких случаях использования мы смогли взаимодействовать с reCAPTCHA с помощью Selenium, и вы можете найти более подробную информацию в следующих обсуждениях:
- Как нажать на reCaptcha с помощью Selenium и Java
- Селектор CSS для чекбокса reCaptcha с использованием Selenium и vba excel
- Найдите элемент reCAPTCHA и щелкните по нему - Python + Selenium
Ссылки
Вы можете найти пару связанных обсуждений в:
- Как сделать скрипт Selenium необнаружимым с помощью GeckoDriver и Firefox через Python?
- Есть ли не обнаруживаемая версия селена? может ли селен действительно обнаружить?
tl; доктор
Чтобы обойти капчу при парсинге Google, вам нужно вручную решить капчу и экспортировать файлы cookie, которые предоставляет вам Google. Теперь каждый раз, когда вы открываете Selenium Webdriver, убедитесь, что вы добавили файлы cookie, которые вы экспортировали. Файл cookie GOOGLE_ABUSE_EXEMPTION - это тот файл, который вы ищете, но я бы сохранил все файлы cookie на всякий случай.
Если вам нужен дополнительный уровень стабильности в ваших сборах, вам следует экспортировать несколько файлов cookie и сделать так, чтобы ваш сценарий произвольно выбирал один из них каждый раз, когда вы пингуетесь с Google.
Эти файлы cookie имеют длительный срок годности, поэтому вам не нужно будет получать новые файлы cookie каждый день.
Чтобы получить помощь по сохранению и загрузке файлов cookie в Python и Selenium, ознакомьтесь с этим ответом: /questions/38188054/kak-sohranit-i-zagruzit-kuki-s-pomoschyu-python-selenium-webdriver/38188075#38188075
Надеюсь это поможет!
Очистите историю просмотров, кешированные данные, файлы cookie и другие данные сайта. Сначала создайте учетную запись Google, когда вы находитесь в окне браузера, открытом селеном. Войдите в свой аккаунт
wd.get("https://accounts.google.com/signin/v2/identifier?hl=en&passive=true&continue=https%3A%2F%2Fwww.google.com%2F%3Fgws_rd%3Dssl&ec=GAZAmgQ&flowName=GlifWebSignIn&flowEntry=ServiceLogin");
Thread.sleep(2000);
wd.findElement(By.name("identifier")).sendKeys("Email"+Keys.ENTER);
Thread.sleep(3000);
wd.findElement(By.name("password")).sendKeys("Password"+Keys.ENTER);
Thread.sleep(5000);
Затем откройте любой веб-сайт, который использует recaptcha, отметьте галочкой этот код.
String framename=wd.findElement(By.tagName("iframe")).getAttribute("name");
wd.switchTo().frame(framename);
wd.findElement(By.xpath("//span[@id='recaptcha-anchor']")).click();
Вы не найдете головоломок или чего-то еще.
Обход, как решить или обойти, как никогда не получить?
Чтобы решить эту проблему:
- зарегистрируйтесь с помощью 2captcha, capmonster cloud, deathbycaptcha и т. д. и следуйте их инструкциям. Они дадут вам жетон, который вы передадите вместе с формой.
Чтобы вообще этого не получить:
- Убедитесь, что у вас хорошая IP-репутация (что наиболее важно для Cloudflare).
- Убедитесь, что у вас есть хороший отпечаток пальца браузера (что наиболее важно для Distil) - я рекомендую puppeteer + плагин stealth.
Итак, вот простой скрипт на Python для решения капчи.
Он в основном читает аудио, а затем использует помощника Google, чтобы преобразовать его в текст и вставить.
Это работает только в аудио-капчах, которые чаще всего встречаются с imahe captcha V2.
Отказ от ответственности!
Я не пишу сценарий, я просто придумал, как это сделать, но получил проект брата, поэтому решил помочь другим в этом.
Если у вас есть доступ к конфигурации, добавьте SiteKey: 6LeIxAcTAAAAAJcZVRqyHh71UMIEGNQ_MXjiZKhISecretKey: 6LeIxAcTAAAAAGG-vFI1TnRWxMZNFuojJ4WifJWe
Captcha предназначена для того, чтобы избежать этих автоматических ботов. Вы можете вручную ввести кодировку и продолжить работу. Нравится:
import time
from time import sleep
time.sleep (60)
dus = input ('Did you solve the captcha? 1 for yes 2 for no :')
if dus == 1 :
continue
else :
time.sleep (60)
tdus = input ('Did you solve the captcha? 1 for yes 2 for
no :')
if tdus == 1 :
continue
else :
exit
Простое решение - приостановить программу на 10 секунд или более, а затем, когда откроется автоматический браузер, решить reCAPTCHA самостоятельно, а затем программа запустится через 10 секунд и выполнит остальную часть программы, например, нажав кнопку отправки или другие вещи.