Итак, кто не в курсе -- в этих ваших интернетах есть т.н. Системы Активной Рекламы. Каждый желающий может либо заказать там рекламу (посмотреть его говносайт(ы), лайкнуть, даже оставить комментарий), либо "заработать" (да да, в кавычках) -- то есть выполнить этот заказ -- зайти на страницу, оставить реакцию, а в особо сложных случаях -- выполнить задачу (например, зарегистрироваться в каком-нибудь онлайн-казино).
Понятное дело, мне лично, как любителю Selenium (это framework для автоматизации браузера, точнее для автоматизированного тестирования вебсайтов с привязками к различным языкам -- Python, Java, Javascript и так даее) -- такое положение вещей показалось весьма забавным и я начал вынашивать планы, как бы это всё распарсить, да автоматизировать, чтобы оно само кликало, выполняло то, что можно выполнить, а я бы просто выводил денежки на какой-нибудь электронный кошелек.
Первый опыт
Первой моей целью стали т.н. "буксы". Не стоит загаживать текст конкретными названиями, ибо это мусор, который должен сдохнуть своей смертью, желательно в муках и с раскаленным ломом в пятой точке.
Выбор жертвы
Поелозив по сайтам для любителей заработка я выбрал один из них, где не было каптчи на каждом шагу и была куча заданий из серии "кликни по ссылке и почитай сайт 30 секунд".
Выбор инструмента
Ок, сайт довольно прозрачный, табличный дизайн, минимум AJAX, так что просто считаем на Сифоне питоне список ссылок, заодно посмотрим сколько надо там провисеть.
Подключим Selenium framework, пройдем по ссылкам подождем нужное время и посмотрим на баланс.
Если что, тут не будет конкретных примеров, а тем более кода. Поверьте, там все элементарно.
Контрмеры
Кликер кликером, но и там тоже не дураки сидят.
- Все происходят во фрейме, фрейм фреймом погоняет.
- Сайт сыпет каптчей, причем в рандомные промежутки времени.
Первое вполне переживает Selenium, со вторым сложнее. Мне в какой-то момент пришлось сделать API, которое сигналило мне в телеграм (через простенького бота) о том, что сайт просит каптчу. Каптча вырезалась, ждала ввода данных. Ввод "осуществлялся", ну и вся конструкция продолжала ходить и накручивать просмотры.
Результаты
Такая хрень приносила 5 рублей в день с аккаунта. Через некоторое время (порядка трех месяцев) аккаунты были забанены, впрочем туда им и дорога.
Это частности. Никто в здравом уме не будет этим заниматься вручную с одной стороны. С другой -- аудитория желающих "повыполнять задания за три копейки" растет, ну там каждый ещё кого-то приглашает, пирамида или секта - я хз.
Меня лично больше интересует техническая часть. Финально удалось добиться следующего.
- Каждый аккаунт работал в собственном контейнере Docker, оснащенном браузером Chromium, удаленным управлением (VNC), опциональной настройкой proxy, чтобы не пускать все аккаунты с одного IP.
- Была цельная ферма, работающая вот на таких одноплатных ПК
- Для управления питанием одноплатных ПК я запилил специальную плату, которая могла управлять 4мя, 9ю или 12 каналами питания. Самая мощная питалась от ATX-источника (и могла управлять им), "младшие" же модели просто умели щелкать каналами питания. Об этом обязательно напишу отдельную статью (чтобы самому не забыть).
- Суммарно у меня было порядка 12 аккаунтов для "клика", работающих примерно на 6-8 одноплатных ПК.
Ок, это было весело. Но немного противно. Поэтому "тему" свернули, да и на горизонте замаячила другая перспектива.
Опыт второй
Я поведал о своих достижениях своему знакомому, который, с одной стороны посмеялся над финансовой стороной, с другой как-то прикипел к вопросом автоматизации различных "оплачиваемых действий".
Через весьма небольшое время на свет родилось расширение для браузера Opera, которое работало с довольно известным сайтом по накрутке лайков.
Что оно умело:
- Считывать список доступных заданий
- Открывать целевой сайт, среди которых: YouTube, SoundCloud, VK, Дзен (да да, дзен), VK, Vimeo
- Совершать некое действие на сайте -- начинать просмотр видео, ставить лайки, просматривать посты и прочее
Варианты использования
Мы сразу разделились во мнениях. У меня в арсенале был Docker с Chromium, у приятеля -- виртуальные машины KVM c Opera на Windows.
Он использовал расширение сразу (за своим авторством), мне же пришлось переписать его под Chromium. Хотя как переписать -- исправить пару строк в файле-дескрипторе (движок-то у бразузеров один и тот же).
Ресурсы
Конечно, кроме железа, на котором нужно было это всё запускать -- нужна была "расходка" в виде аккаунтов.
Аккаунты ВК -- покупались в магазинах. Закупались т.н. "автореги" с неподтвержденным номером по СМС. Математика простая -- аккаунт стоит допустим 30 рублей, за неделю-две, прежде чем его забанят -- он успевает "насшибать" порядка 80. Фотки генерились нейросейтью, например сайтом NotARealHuman (сейчас давно не работает).
Аккаунты YouTube, они же Google. Тут похожая история. Регались так же сами, ловили СМС через всякие гейты за небольшую сумму.
Остальные аккаунты были производными, так в SoundClound можно было войти по акку Gmail, а в одноглазники -- через VK.
Было даже такое, что размещали "задания" на "биржах" -- зарегать аккаунты, авторизоваться и сообщить логин-пароль, но потом от этого отказались.
На утряску-усушку процедур ушло порядка пары месяцев. Нужно было отслеживать забаненные, менять гео, чтобы получать больше заданий.
Финально удалось добиться минимального вмешательства в систему и осматривать ее пару раз в неделю на предмет банов.
Железо и софт
Как сказано выше, приятель использовал "просто виртуальные машины" в количестве порядка 20 штук.
Я же в конечном итоге пришел к тому, что построил Kubernetes кластер, работающий на одноплатных компьютерах. А уже потом "спрыгнул" с одноплатных ПК на Android-приставки. На них ставят дофига памяти, нормальный процессор и можно накатить тот же Linux (но не на все, об этом в отдельной статье).
Впрочем, тему кластеров на ARM-железе обязательно опишу отдельно.
Сервис для Kubernetes написался довольно быстро на основе Docker-контейнера с Chromium и VNC и включал в себя:
- VNC-сервер
- Сам Chromium, в который ставилось расширение
- Принудительный прокси, который умел делать upstream на другой прокси (для использования разных адресов) или ходить "напрямую" в интернет
- Система бэкапов, которые очень пригодились, пока кластер не был стабилизирован
Результаты
Я не буду считать расходы на "железо и обвязку", это отдельная тема.
Так, к расходам можно отнести:
- Электричество (кластер нажигал около 2500р в год)
- Расходы на аккаунты (около 200 р в месяц суммарно)
- Время на обслуживание (тут судить трудно -- вначале оно большое, потом с получением "опыта", если его можно так назвать -- уменьшается по экспоненте).
С доходами проще -- все, что накапало на аккаунт, за вычетом комиссий обменников (скажем, нужно вывести с Payeer на какие-нибудь YooMoney).
За год -- пятизначная цифра. Неплохой бонус к новому году, например.
Однако есть профиты не прямые. О них позже.
Как оно закончилось
Ну, во-первых один из "драйверов" дохода -- лайки и просмотры YouTube -- по факту приказал долго жить сами знаете из-за чего.
Да, у Opera есть обходные пути для этого, но это не мой лично случай, да и не стоило оно того.
Стало скучно? Да. А еще лайкать чей-то торс на фоне Бэхи -- ну такое себе занятие.
Lessons Learned
Научился писать сервисы для Kubernetes. Оказалось, что "модное слово" и никакой магии. И ограничений куча, и нюансов.
Выяснил, что лайки и просмотры часто покупные. Наверное, люди так же попадают на концерты Инстасамки или Моргенштерна, хотя фиг его знает.
Написал кучу скриптов для автоматизации, прокачал Ansible-скиллы
Оптимизировал все, что можно оптимизировать.
Не поверите, первый SSD, который использовался для хранения данных Kubernetes был ушатан за полгода. Статистика writes превышала reads в разы. Конец немного предсказуем -- сдал по гарантии, хотя бы успел снять бэкап. Пришлось читать много всего, чтобы улучшить ситуацию. Получилось.
Буду ли я в это ввязываться опять ? Возможно, но есть еще куча интересного, что можно попробовать.
Спасибо, что дочитали до конца. Надеюсь, было интересно.