Кэшер актуальных токенов reCaptcha/hCaptcha (v7.5.0.0)

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
Описание

Чуть больше двух лет назад у одного моего клиента возникла необходимость получать нечто с некоего сайта. Но просто проделав все необходимые действия получить это нечто не получалось. Объёмы были ограничены и другие люди успевали всё забрать раньше. Важно было стать самым быстрым, ну или хотя бы достаточно быстрым, чтобы урвать хоть что-то. Разгадка рекапчи занимала львиную долю времени. Было принято решать задачу комплексно: переписать шаблон под запросы + написать шаблон из данной темы, который заранее бы добывал токены и основному шаблону не надо было тратить время на разгадывание.

Ситуации, в которых данный шаблон может пригодиться:
  1. Вышеописанная, когда есть конкуренция и нужно быть быстрее других.
  2. Когда у сайтов есть свои взгляды на то, как долго можно разгадывать капчу. Встречал эту ситуации лично при регистрации на одном почтовике. Суть такова, что он не пропускал регистрацию, если на капчу тратилось больше 30 секунд.
  3. Любая массовая деятельность, когда из железа нужно выжать как можно больше, пусть и ценой повышенных затрат на капчу (ведь часть токенов будет просто сгорать).


Как работает шаблон

У шаблона есть основной управляющий поток и рабочие. Поэтому проект должен быть настроен на минимум 2 активных потока.
  • Управляющий поток (им становится самый быстрый из потоков). Его задачи: следить за актуальностью токенов (удалять потенциально мертвые) и выдавать задания рабочим на добычу, если в этом есть необходимость.
  • Рабочий поток (кто не успел, тот опоздал). Рабочие проверяют, есть ли доступные задания и, если есть, берут его в работу и добывают токены. Готовый токен будет записан в соответствующий список в формате временная_метка_жизни|токен.
Чем больше токенов нужно держать в списке - тем больше потоков нужно выставлять.

Пример лога работы
111527



Настройки

Скриншот входных настроек
111531

Общие настройки
  • Путь к файлу с токенами - файл, в который шаблон будет писать добытые токены. А также удалять неактуальные. В общем, файл с результатами работы
  • Время работы шаблона - время, через которое поток закончит работу. Сделано на случай поломки, хотя ломаться там нечему. Сам шаблон советую ставить на бесконечное число выполнений

Настройки распознавания
  • Тип капчи - тут всё просто: reCaptcha или hCaptcha. Из видов reCaptcha в шаблоне на данный момент только V2
  • url - полный адрес страницы, на которой разгадывается капча
  • sitekey - капча-ключ сайта. Индивидуален для каждого сайта. Этот текст я скопировал со справки ZennoLab по экшену распознавания. Там же вы сможете найти инструкцию как добыть этот параметр
  • Капча сервис - сервив, через который будет происходить разгадывание. Например, CapMonsterCloud
Хранение и добыча токенов
  • Сколько секунд считать токен живым - время жизни токена, по истечении которого токен считается неактуальным и будет удалён из файла управляющим потоком
  • Сколько живых токенов поддерживать в списке - количество токенов, которое управляющий поток будет пытаться держать в файле, добавляя задания для рабочих потоков или наоборот ограничивая их. Не точное значение из-за следующей настройки
  • За какое время до смерти токена начать добывать новый - время до смерти токена, в которое активизируется управляющий поток с новым заданием, чтобы успеть возместить будущую потерю


Результат

Результатом работы шаблона будет постоянно обновляющийся файл актуальных токенов reCaptcha/hCaptcha в формате временная_метка_жизни|токен. При необходимости любой другой шаблон просто берет первую строку из этого файла, отбрасывает метку и использует токен по назначению не теряя время на собственное разгадывание.
 
Номер конкурса шаблонов
Одиннадцатый конкурс шаблонов

Вложения

Для запуска проектов требуется программа ZennoPoster или ZennoDroid.
Это основное приложение, предназначенное для выполнения автоматизированных шаблонов действий (ботов).
Подробнее...

Для того чтобы запустить шаблон, откройте нужную программу. Нажмите кнопку «Добавить», и выберите файл проекта, который хотите запустить.
Подробнее о том, где и как выполняется проект.

Последнее редактирование:

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 983
Благодарностей
4 433
Баллы
113
А может совместными усилиями создать общую базу токенов?
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 983
Благодарностей
4 433
Баллы
113
Я может не в теме. Но вот например собираем токены Рекапчи с чего-то популярного, допустим выдача Гугла, и добавляем в БД с доступом для тех кто собирает. Или так не работает?
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
Я может не в теме. Но вот например собираем токены Рекапчи с чего-то популярного, допустим выдача Гугла, и добавляем в БД с доступом для тех кто собирает. Или так не работает?
токен не вечный и привязан к конкретной странице/сайту
 

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 983
Благодарностей
4 433
Баллы
113
токен не вечный и привязан к конкретной странице/сайту
Не вечный - так база постоянно обновляется кучей юзеров, чем их больше, тем свежее токены.
Привязан к сайту - есть 10-20 сервисов/сайтов, которые юзают 90% пользователей. Типа почтовиков, соц. сети и т. д. На них можно сконцентрироваться.
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
Не вечный - так база постоянно обновляется кучей юзеров, чем их больше, тем свежее токены.
Привязан к сайту - есть 10-20 сервисов/сайтов, которые юзают 90% пользователей. Типа почтовиков, соц. сети и т. д. На них можно сконцентрироваться.
Если ты и так работаешь на базу, то зачем тебе потенциальные нахлебники?)
 

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 983
Благодарностей
4 433
Баллы
113
Если ты и так работаешь на базу, то зачем тебе потенциальные нахлебники?)
Либо ты используешь свои мощности для пополнения и обновления базы и предоставляешь доступ к базе за деньги (подписка, например).
Либо ты создаёшь систему с секьюрными доступами, подсчетами участия и лимитами и юзеры используют токены в зависимости от своего участия в их добыче. По принципу баннерообменных сетей. Ну и организатор сервиса (тот кто напишет эту систему и предоставит мощности) имеет приоритетный неограниченный доступ к базе.
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
Опять же, если человек и так уже добывает токены, зачем ему эти лишние движения?
 

Astraport

Client
Регистрация
01.05.2015
Сообщения
4 983
Благодарностей
4 433
Баллы
113
Один из сценариев:
Ему сейчас нужно спарсить выдачу Гугла без проксей. Нужны токены для разгадывания Рекапчи. Старые стухли, чтобы собрать свежие нужно время, но есть доступ к базе где у него не выбраны лимиты и он использует токены собранные товарищами. Такая касса взаимопомощи. А потом он, как будет время, пополняет свои лимиты.

Ну и, опять же, монетизация, идея своего сервиса.
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
Как вариант. Но работать будет только на огромном количестве пользователей. Иначе токены будут просто гореть
 
  • Спасибо
Реакции: lbvf65 и Astraport

TommyTuta

Client
Регистрация
02.10.2022
Сообщения
130
Благодарностей
58
Баллы
28
RecaptchaV3 поддерживает?
и сколько примерно живет токен?
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
RecaptchaV3 поддерживает?
и сколько примерно живет токен?
Токен живет около пары минут. Но сайты могут иметь своё время. Нужно тестировать для каждого сайта
В шаблоне реализовано только v2, но ему можно попробовать скормить v3. Вроде как некоторые сервисы сами определяют версию и решают. Опять же, можно просто слегка подправить шаблон, добавив вместо IF кубик SWITCH, и кубик решения v3
 
  • Спасибо
Реакции: GreenWay и TommyTuta

volody00

Client
Регистрация
06.09.2016
Сообщения
918
Благодарностей
953
Баллы
93
Слушай, а зачем ты сделал генерацию глобальных переменных вида name + taskId? Т.е. почему просто не создал одну глобальную переменную с обычным именем? P.S. Я пока ещё до конца не разобрался в логике шаблона, может поэтому не догоняю зачем это. Или это просто перестраховка, чтобы случайно в других шаблонах не создать такую же глобальную переменную?
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
Слушай, а зачем ты сделал генерацию глобальных переменных вида name + taskId? Т.е. почему просто не создал одну глобальную переменную с обычным именем? P.S. Я пока ещё до конца не разобрался в логике шаблона, может поэтому не догоняю зачем это. Или это просто перестраховка, чтобы случайно в других шаблонах не создать такую же глобальную переменную?
чтобы у каждой копии шаблона были свои глобалки. Ведь он может понадобится сразу для нескольких сайтов
 
  • Спасибо
Реакции: volody00

SlipDez

Client
Регистрация
18.07.2018
Сообщения
375
Благодарностей
70
Баллы
28
Случайно наткнулся на тему, как раз то, что я искал. Буду признателен если объяснишь как это все работает?

Верно я понимаю что можно используя один url и sitekey можно "наклепать" 5 рабочих токенов и использовать их после входа на страницу капчи с этим url и sitekey?

Работает ли это с hcaptcha Enterprise?

На сколько я понял что каждый раз когда человек заходит на страницу с капчей и решает ее при этом не отправляет токен решения он может передать его другому человеку который находится на той же странице с капчей и она примет этот токен как верный, не смотря на то, что капча другая?
 
Последнее редактирование:

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
Верно я понимаю что можно используя один url и sitekey можно "наклепать" 5 рабочих токенов и использовать их после входа на страницу капчи с этим url и sitekey?
Да. Но у токена ограниченное время жизни

Работает ли это с hcaptcha Enterprise?
Реализация через экшн распознавания зеннопостера. Если изначально через него решается - проблем не будет. Но придется мудрить свой аналог перехвата и автосабмита.

На сколько я понял что каждый раз когда человек заходит на страницу с капчей и решает ее при этом не отправляет токен решения он может передать его другому человеку который находится на той же странице с капчей и она примет этот токен как верный, не смотря на то, что капча другая?
Так в принципе устроены все капчи, построенные на токенах
 
  • Спасибо
Реакции: SlipDez

texnorip

Client
Регистрация
22.10.2016
Сообщения
26
Благодарностей
20
Баллы
3
Этот шаблон был написан для меня:-) по сей день он выполняет свою работу на ура,мало того в последнем тз было реализовано связку с капмонстром и теперь более 10 000 токенов решаются в день без каких либо проблем. Токены живут 120 секунд,на высоких нагрузках ни разу не было каких либо сбоев в работе. Такая маленькая вещь,но делает колоссальную работу. Однозначно мой голос за тебя.
 

Nord

Client
Регистрация
22.03.2012
Сообщения
2 406
Благодарностей
1 473
Баллы
113
Хехе))
Так же делал))
Лайк!
 

SlipDez

Client
Регистрация
18.07.2018
Сообщения
375
Благодарностей
70
Баллы
28
Спасибо за ответы,

Реализация через экшн распознавания зеннопостера. Если изначально через него решается - проблем не будет. Но придется мудрить свой аналог перехвата и автосабмита.
Имеется ввиду callback функцию перехватывать или что-то еще?
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
  • Спасибо
Реакции: SlipDez

SlipDez

Client
Регистрация
18.07.2018
Сообщения
375
Благодарностей
70
Баллы
28

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113

SlipDez

Client
Регистрация
18.07.2018
Сообщения
375
Благодарностей
70
Баллы
28

Кто просматривает тему: (Всего: 3, Пользователи: 0, Гости: 3)