Новый способ решения ReCaptcha V2
UPD 01.09.2016: В данный момент рекапча решается для любого сайта. Отправка адреса сайта обязательна (раньше была не обязательна). Отправка прокси желательно, но пока не обязательна.
Данный способ позволяет пройти рекапчу без эмуляции браузера и отправки нам картинок, так же этот способ даёт 100% прохождение капчи.
Вводная часть:
Стоит сказать пару слов об алгоритме работы рекапчи, разберём по шагам какие данные в какой момент куда отправляются.
1. Пользователь заходит на страницу, загружается страница с сайта и подгружается форма рекапчи с гугла
2. Пользователь нажимает галочку и решает капчу
3. Когда капча решена, гугл проверяет ответ и отдаёт пользователю код в поле <textarea id="g-recaptcha-response"
4. Пользователь заполняет все формы на той странице где он находится
5. Пользователь отправляет данные формы. Вместе с этими данными отправляется и код из поля "g-recaptcha-response"
6. Сайт получает данные от пользователя и обращается к гуглу с вопросом является ли валидным код из поля "g-recaptcha-response"
7. Гугл проверяет валидность кода. Если код валиден, сайт продолжает обработку введённых пользователем данных
Более подробная инструкция, с картинками и пояснениями предоставлена на странице Как пройти ReCaptcha V2 без браузера, подробная инструкция
Схема обхода рекапчи:
1. Вы заполняете все нужные Вам поля.
2. Отправляете нам Site_Key данного сайта + доп.данные ( пока не обязательные: PROXY через который Вы работаете)
3. Мы загружаем капчу у себя и даём работнику её решить.
4. Когда работник решил капчу, мы получаем g-recaptcha-response
5. Мы отдаём Вам g-recaptcha-response
6. Вы вставляете наш ответ в поле g-recaptcha-response и проходите форму
Подробная инструкция обхода рекапчи с картинками:
Стоимость:
1000 решений стоят 160 рублей.
Где какие данные брать и куда вставлять?
Посмотрите HTML-код страницы, где Вы встретили капчу:
1. найдите параметр
data-sitekey=
Это ключ сайта, он постоянен и уникален для каждого сайта (если администратор сайта не поменяет его вручную)
Перешлите этот ключ нам в параметре
googlekey=%data-sitekey%
2.найдите форму для текста
<textarea id="g-recaptcha-response" name="g-recaptcha-response" class="g-recaptcha-response" style="width: 250px; height: 40px; border: 1px solid #c1c1c1; margin: 10px 25px; padding: 0px; resize: none; "></textarea>
Сюда вам нужно будет вставить ответ от нас
API для общения с нашим сервером:
Адрес для загрузки капчи: http://rucaptcha.com/in.php
После отправки данных Вы получите ответ формата
OK|CAPTCHA_ID
Где CAPTCHA_ID это ID капчи, по которому нужно через некоторое время обратиться за ответом.
Параметры, которые нужно передать на наш сервер:
POST параметр | значение | описание параметра |
---|---|---|
key | YOUR_API_KEY | Обязательный параметр. YOUR_API_KEY Вашего аккаунта в рукапче, находится на странице https://rucaptcha.com/setting |
method | userrecaptcha | Обязательный параметр. Данный параметр говорит нам о том, что это рекапча, которую нужно проходить на нашей стороне |
googlekey | %data-sitekey% | Обязательный параметр. Открытый ключ сайта, где установлена ReCaptcha, находится в HTML коде страницы, где Вам встретилась рекапча |
proxy | %IP proxy% | Не обязательный параметр (но может стать обязательным, желательно сразу это настроить). Работник решает капчу через указанный прокси. |
proxytype | HTTP HTTPS SOCKS4 SOCKS5 |
Тип прокси. |
pageurl | %URL% | Обязательный параметр, URL страницы, где проходится капча. Можно указывать только адрес домена, а не полный URL. При решении рекапчи работник загружает с этого домена контект, связанный с рекапчей. |
json | 1 | Не обязательный параметр. Получение ответа от сервера в формате JSON. Работает для in.php и res.php Status = 1 запрос успешен Status = 0 ошибка |
Пример загрузки капчи:
http://rucaptcha.com/in.php?key=YOUR_API_KEY&method=userrecaptcha&googlekey=googlekey&pageurl=site.com
Адрес для получения ответа:
http://rucaptcha.com/res.php?key=YOUR_API_KEY&action=get&id=CAPTCHA_ID
YOUR_API_KEY - KEY Вашего аккаунта в рукапче, находится на странице https://rucaptcha.com/setting
CAPTCHA_ID - ID капчи, которое Вы получили в ответ на загрузку
Для получения ответа в формате JSON, сделайте запрос вида
http://rucaptcha.com/res.php?key=YOUR_API_KEY&action=get&id=CAPTCHA_ID&json=1
Код на C# http://pastebin.com/kKmqiGg2
мануал для полного прохождения recaptcha v2 на java + selenium
GitHub, образцы кода на C#, C++, Java, JavaScript, PHP, Python, Ruby, iMacros для прохождения recaptcha V2 через наш сервис (В образцах прописан домен 2captcha.com, это наш домен, можно его не менять и работать с ключом от RuCaptcha.com)
Дополнительно
Сейчас наша реализация такова, что рекапчу работник решает с одного IP, а проходите Вы её с иного IP. Теоритически гугл может это выследить и заблокировать Ваш IP, через который Вы работаете. Поэтому желательно вместе с капчей отправлять нам адрес прокси, через который работник загрузит капчу. Для прокси с авторизацией по IP нужно внести в список разрешённых адресов адрес нашего сервера: 138.201.188.166, для прокси с авторизацией по логину паролю ниже инструкция в каком формате их нужно отправлять. Наши работники подключаются к Вашем прокси через наш промежуточный сервер и не видят авторизационные данные от Ваших прокси.
Как правильно отправлять прокси
Если авторизация на Ваших прокси происходит по логину\паролю:
У Вас есть:
логин: login
пароль: password
адрес: 123.123.123.123
порт: 3128
тип: SOCKS4
Формат отправки на rucaptcha.com:
proxy="login:[email protected]:3128"
proxytype="SOCKS4"
Если Ваши прокси доступны только с ограниченного количества IP-адресов
добавьте в список разрешённых IP адресов наш сервер, с которого будут происходить обращения к Вашим прокси:
138.201.188.166
Внимание! Данный IP-адрес может меняться, если Ваши прокси привязываются к IP, следите за изменениями на этой странице.
У Вас есть:
адрес: 123.123.123.123
порт: 80
тип: HTTP
Формат отправки на rucaptcha.com
proxy="123.123.123.123:80"
proxytype="HTTP"
"