инста саб что это
ЕЩЕ БОЛЬШЕ ПОДПИСЧИКОВ ИЗ ТАРГЕТА С INSTASUB
1.1 Как сделать эффективный лид-магнит, который даст вам дешевых подписчиков
1.2 Обзор интерфейса InstaSub
2.1 Как таргетированная реклама связана с InstaSub. Регистрация в Ads Manager
2.2 Пиксель Facebook и создание нужных конверсий
2.3 Обзор и создание рекламной компании в Instagram
3.1 Детальный таргетинг
3.2 Создание аудиторий через пиксель
3.3 Сбор аудиторий через секретный способ
Обучающий PDF файл по настройке сервиса и сбору целевой аудитории
Доступ к сервису InstaSub навсегда
Доступ к онлайн-курсу «Эффективный таргет с InstaSub»
Доступ в закрытый клуб учеников курса
Общение с куратором и ответы на ваши вопросы
Вы получаете инвайт с балансом
3 000 руб в системе
Обучающий PDF файл по настройке сервиса и сбору целевой аудитории
Доступ к сервису InstaSub навсегда
Доступ к онлайн-курсу «Эффективный таргет с InstaSub»
Доступ в закрытый клуб учеников курса
Общение с куратором и ответы на ваши вопросы
VIP-день с персональным разбором и консультацией Даниила Щербинина
Секретный авторский PDF-файл, в котором собраны все фишки с использованием которых мы получали подписчиков по 5 рублей
Вы получаете инвайт с балансом 3 000 руб. в системе
Все что входит в тариф «VIP»
Создание лид-магнита под вашу сферу
Создание 5-10 рекламных материалов под лид-магнит
Настройка рекламной кампании от специалистов
Месячное ведение и оптимизация рекламы
Анализ и сбор вашей целевой аудитории
Для тех, кто хочет получить доступ
к сервису без обучения
Вы получаете инвайт с балансом
3 000 руб в системе и доступ
к InstaSub навсегда
Обучающий PDF файл по настройке сервиса и сбору целевой аудитории
Доступ к сервису InstaSub навсегда
Доступ к онлайн-курсу «Эффективный таргет с InstaSub»
Доступ в закрытый клуб учеников курса
Общение с куратором и ответы на ваши вопросы
Вы получаете аккаунт с балансом
3 000 руб в системе
Обучающий PDF файл по настройке сервиса и сбору целевой аудитории
Доступ к сервису InstaSub навсегда
Доступ к онлайн-курсу «Эффективный таргет с InstaSub»
Доступ в закрытый клуб учеников курса
Общение с куратором и ответы на ваши вопросы
VIP-день с персональным разбором и консультацией Даниила Щербинина
Секретный авторский PDF-файл, в котором собраны все фишки с использованием которых мы получали подписчиков по 5 рублей
Вы получаете аккаунт с балансом
3 000 руб. в системе
ПОЧЕМУ ДЕШЕВЛЕ ПРИВЛЕКАТЬ ЖИВУЮ АУДИТОРИЮ ЧЕРЕЗ ЛИД-МАГНИТ?
Потому что продажи «в лоб» сейчас не работают. С помощью InstaSub вы дадите своей аудитории полезный материал, но чтобы его получить пользователю нужно будет подписаться на ваш instagram.
Как работает сервис:
1. Вы придумываете для своего аккаунта полезный материал. Он будет автоматически выдаваться пользователям, которые подпишутся на ваш аккаунт.
2. В нашем сервисе создаёте специальную «подписную страницу» и оформляете ее, как этого хотите Вы. Указываете ваш логин инстаграм на который нужно подписаться, чтобы получить материал. Пароль не требуется.
3. Рекламируете ссылку для получения материала. Наш сервис отлично работает с таргетированной рекламой в Instagram и показывает удивительные результаты. Стоимость привлечения подписчика выходит в 2-10 рублей, в зависимости от сферы деятельности и вашего аккаунта.
4. При переходе по вашей ссылке человек вводит свой логин Инстаграм, а наш сервис автоматически проверяет подписан ли этот человек на ваш аккаунт.
5. Если человек подписался, то ему автоматически выдаётся доступ к вашему материалу. Если нет, то материал выдаваться не будет.
6. Анализируйте статистику внутри сервиса и уменьшайте стоимость подписчика с каждым днем.
Преимущества сервиса:
-Уменьшение стоимости клика и живого целевого подписчика с таргетированной рекламы.
ПРОМОКОД «ZISMO» НА СКИДКУ 15% ВСЕМ ПОЛЬЗОВАТЕЛЯМ
Kачественные лайки, просмотры, подписчики, комментарии для Instagram, YouTube, Facebook, Tiktok, Вконтакте, итд. для роста популярности, продаж и конверсии в соцсетях.
Промокод TGHYRV100 на скидку 50% всех пакетов. Доступно всего 3 активации.
Изменили способы оплаты. Теперь списывается 2 рубля за каждого привлеченного подписчика через наш сервис. Месячные тарифы были убраны.
Наш сервис с каждым днём становится лучше и это благодаря вам! Спасибо всем, кто находит ошибки и сообщает о них. Спасибо тем, кто предлагает новые функции и делится своими идеями. Нам это очень помогает. ⠀
Парсер Инстаграм или как собрать целевую аудиторию
Парсинг Инстаграм — это сбор (парсинг) целевой аудитории по критериям. Инструмент поможет сэкономить бюджет на рекламу, привлечь новую аудиторию, увеличить количество клиентов и повысить конверсию.
Например, можно собрать подписчиков конкурента, собрать пользователей по лайкам и комментариям сделанных к определенному посту и т.д.
Проще говоря, вы можете собрать все данные для старта рекламной компании, будь то массфоловинг или таргетированная реклама. Парсер Инстаграм — отличный инструмент для сбора списков пользователей и их данных.
Что может парсер?
Вы можете собрать людей которые интересуются ценами в комментариях к постам конкурентов. Собрать профили тех кто только что подписался или ставит лайки конкурентам. Возможностей масса:
Возможности парсинга помогут вам собрать список людей, которые:
Что делать с готовой и отфильтрованной базой?
13 ТОПовых сервисов парсинга Инстаграм
Cпарсить аудиторию в Инстаграм легко!
Представляю вашему вниманию топ парсеров для Инстаграм. Проверено опытом тысяч пользователей, выбирайте самый подходящий под ваши нужды и вперёд.
№1 Instaparser
Платформа все силы положила на сбор целевой аудитории и мониторинг именно в Instagram. Поэтому на выходе очень высокий результат работы, а в дополнение – быстрый отклик сайта, работа в облаке и простейший интерфейс. Что умеет:
Советую попробовать функцию парсинга по хештегу, там можно собрать данные по названию хештега, всем постам, где он встречается и аккаунтам, которые его использовали.
С парсингом по геолокации так же.
Сразу скажу– чур, не сдаваться. На сервисе уже собран список API-ключей и это смахивает на кодировку, однако сложного ничего нет, вы перед запросом добавляете одни и те же ключи.
В конце концов, потом начнёте проставлять их не задумываясь. Можно ограничиваться базовым поиском, но это не самый глубокий парсинг.
Список возможностей парсинга огромен:
И ещё, про быстроту результатов. Вы можете пользоваться минимальными фильтрами, но если, например, при сборе подписчиков, вы введёте «от и до» какого количества подписок искать аккаунты, то список получится более качественным, но время выполнения задачи увеличится в разы. Ориентировочно, рассчитываете на ожидание от нескольких часов до суток.
Выданный список лучше сразу загрузить на компьютер, через 30 дней он пропадает с сайта. Сделано это для того, чтобы облегчить сервис, иначе он бы туго работал.
Стоимость, всего 660 рублей в месяц
№2 Segmento-target
Спрашивали, зачем и как спарсить аудиторию в Инстаграм для таргета? Получайте, это специально заточенная под рекламу платформа.
Монстр в мире сервисов для парсинга. Может всё и даже больше, потому что заточен находить целевую аудиторию и делает это похлеще, чем любой детектив.
Для сбора ЦА парсер в Instagram считывает информацию точечно, по заданным параметрам, а результат подаёт в списке. Дальше список вставляется в рекламном кабинете и запускается реклама. Из-за того, что аудитория собрана уже тёплая, откликов, покупок выходит больше.
Есть нюансы, сразу предупреждаю. Первое, платформа долго сотрудничает с ВК и тут нет никаких неожиданностей, глюков. Но инста появилась намного позже и бывает, нужна помощь техподдержки. Хотя с каждым днём всё меньше и меньше. Что мы тут с вами видим:
Преимущество Segmento-target в том, что у него есть возможность парсить сразу три соцсети: Инстаграм ВКонтакте и Одноклассники.
По стоимости, смотрите на скрине:
№3 Zengram Parser
Еще один отличный парсер Инстаграм от создателей всем известного сервиса для массфоловинга и масслайкинга. В наличии такие метрики:
Если соберёте комментарии под постом с розыгрышем и закините их в программу для поведения итогов, победителя выдаст намного быстрее, потому что сайту не нужно будет самому собирать информацию, только сгенерировать случайный комментарий. Пробуйте.
Zengram Parser очень хорош тем что вы можете взять полученную базу и вставить ее в основной инструмент для массфолоовинга и масслайкинга в Zengram.
Пользоваться очень просто:
Стоимость от 833 рублей при оплате за год + есть пробный период.
№4 Livedune
Как такового, парсера для сбора данных в Инстаграм тут нет, но есть функция мониторинга. Она справляется ничуть не хуже. Мониторить можно:
Кроме этого, подумайте над использованием проверки блогеров перед заказом у них рекламы, отчётов вашего аккаунта, проставлению KPI и просмотру статистики. Первый запуск бесплатный, а дальше по тарифу от 500 рублей в месяц.
№5 Socialkit
Отличная программа для парсинга аудитории Инстаграм для таргетированной рекламы, есть много возможностей. К примеру, по конкурентам
Ещё можно спарсить базу в Инстаграм через сообщества в ВК и полный сбор активной аудитории. Последнее усиленно рекомендую, оттуда хорошая конверсия в рекламе.
Помимо парсинга программа заточена на целый комплекс работ по продвижению Инстаграм аккаунта.
Стоимость 1200 рублей за месяц использования программы.
№6 Instaplus.me
Кто не любит Instaplus, тот им просто не пользовался. Очень простой функционал в паре с большим количеством возможностей и вот, вы уже преданный фанат этого сайта, на другие даже не заглядываетесь, потому что здесь есть всё, что только может понадобиться.
По поводу сбора целевой аудитории в Инстаграм я не могу сказать ничего плохого – функция пользуется популярностью, работает исправно и приносит хорошие плоды.
Выборка аккаунтов может составляться как программой-парсером, так и встроенным автоматическим сбором данных.
Собственно, данные включают в себя поиск аккаунтов по хештегам, местоположению, подписчикам. Можно попробовать вместе с другими услугами:
Тарифы гуманные, от 399 рублей в месяц.
№7 Pepper.ninja
Я работал с ним, когда был новичком в таргете, и разобраться в устройстве не составило труда — оставил только приятные впечатления. А когда я поднаторел в таргете, то он обеспечил продвинутую настройку по подписчикам. Рекомендую, функций тут навалом:
Что приятно, фильтры работают без сбоев, не пропускают пользователей, которые не пользовались аккаунтов 2 года. Хорошо ладит с ВК потому что изначально имел курс на работу только с ним, постепенно функционал расширился.
Стоимость от 490 рублей в месяц.
№8 GramTomato
Подходит для запуска нового проекта или ребрендинга: просто вводите своих конкурентов (оптимально страничек 6-8) включайте парсер. настраивайте на них масслайкинг, массфоловинг. Всё это, кстати, уже есть в услугах.
Можно вводить геометки или хештеги, которые будут интересны вашим потенциальным клиентам и так находить ЦА. Попробуйте парсинг номеров телефонов после всех основных настроек, чтоб собрать все сливки.
5 дней бесплатно, а дальше тариф 690 рублей в месяц.
№9 Bridgit
Очень полезный онлайн помощник по тому, что касается продвижения страницы в Инстаграм. Собрано всё самое нужное:
Помимо всех азов продвижения, тут реально настроить парсер для комментариев Инстаграм, логинам, интересам, местоположению (относительная ошибка небольшая). Советую всем довериться платформе, не пожалеете.
Стоимость от 490р в месяц.
№10 Instaplus.pro
Насколько внимательно вы читали то, что я говорила про Instaplus.me? Вот тут те же функции, но в мобильном приложении. Это даже не совсем приложение, а именно программа.
Есть обучалка при скачивании, так что изменение интерфейса (если вы до этого пользовались компьютерной версией на сайте) вас не запугает.
Вообще очень удобно, когда вы сомневаетесь, будет ли ваш ноутбук рядом в ближайшее время, а парсинг Инстаграм по геолокации или аккаунтам настраивать надо. Движок у программы такой же, просто он заточен под работу на телефоне без использования Гугла.
Стоимость от 399р за месяц использования.
Финальные 3 сервиса для парсинга
Функционал у всех примерно одинаков, так что вот таблица-сравнение для наглядности:
Покупая подписку, не ищите фразу «парсинг/парсер email-адресов из Инстаграм» или что-то вроде того. Часто эта услуга называется на подобие «Сбор базы ЦА», «поиск целевой аудитории», «мониторинг подписчиков». Вы покупаете не умное слово, а возможность. Помните это.
Подписчики в Instagram за 0 руб с помощью микроворонки
Гайд создан так, чтобы ты пошагово применил его, зная только как технически настроить рекламу. Иначе не сливай бюджет и найди таргетолога. Пусть повторит все что здесь написано
Если все правильно сделать, то начнешь приводить подписчиков в экспертный блог бесплатно. И в некоторых случаях сразу окупая холодный трафик в несколько раз
Результат не свалится с неба
Бюджет на рекламу планируй от 20к, чтобы набрать первые 1500-2000 аудитории и с последствии заработать с этого 300-500к
Неумение стабильно набирать аудиторию. Многие идут в гивы, марафоны или пытаются набирать подписчиков устаревшими способами убивая аккаунт
2 эффективных способа набора аудитории
1. Таргетированная реклама
2. Реклама у блогеров
Второй способ имеет больше минусов
— Очередь на рекламу
— Нельзя отследить эффективность рекламы
— Обман и накрутка среди блогеров
— Высокая вероятность заплатить большую сумму и нечего не получить
— Разношерстная и не платежеспособная аудитория
И напротив, таргетированная реклама дает
+ Протестировать креативы на бюджете 500-1000 рублей
+ Стабильность трафика, где цена за подписчика практически не меняется
+ Возможность таргетироваться на аудиторию, которой вы максимально интересны
+ Возможность контролировать и управлять потоком подписчиков
+ Экспертный блог выращенный на таргете, в десятки раз ценнее, чем крупный блог с непонятной аудиторией
На экспертных небольших блогах, можно зарабатывать 300-500 тысяч, даже при аудитории от 1500 подписчиков
Мой результат: Вложено 70к в таргет, выручка 1.9 млн (запуск + услуги)
Люди приходят на пользу, а остаются на личность. Просто так уже не подписываются
1. Раньше все лили просто на блог с целью трафик
2. Далее додумались поставить прокладку и лить на конверсии.
3. Сейчас появился способ намного круче. Хочу познакомить с сервисом создания чат-ботов в Инстаграм «Manychat.com»
— Человек видит рекламу, где предлагается получить полезный материал в ответ на подписку
— Идея хорошая, но алгоритм: «подпишись, поставь «+» в Директ и забери чек-лист» не позволяет автоматизировать выдачу лид-магнита. Приходиться отвечать на десятки сообщений в день
— Плюс ко всему нельзя отслеживать результат по креативам. Оптимизация идет по цене за клик и не факт, что дешевый клик гарантирует качественную аудиторию по хорошей цене
Manychat проверяет подписку на аккаунт. Если человек подписался, то сервис открывает доступ к ссылке на бесплатный материал
Используя цель сообщения появилась возможность оптимизировать и отслеживать стоимость подписчика
Шаг №1 Создание лид-магнитов
— Создаем 3-5 полезных бесплатных материалов. Важно дать такую пользу, после которой, люди захотят остаться и следить за блогом
— Пойми целевую аудиторию и под нее сделай лид-магниты. Не обязательно он должен быть сложный, большинство людей новички и даже простая информация покажется полезной
— Делаем анализ конкурентов и смотрим, какую пользу они дают. Выбираем темы, которые зацепили и адаптируем под себя
Шаг №2 Создание офферов и креативов
— Как и в случае с лид-магнитами, делаем максимум на этапе тестов. Для одного лид магнита делаем 4-8 разных креативов. Не буду учить вас и углубляться в таргет – потому что вы уже это должны знать или нанять таргетолога, который реализует.
— Особое внимание уделяем офферу. Настройки и аудитории сильно вам не помогут. Креатив – это основа самых крутых результатов при наборе аудитории.
— В креативах используем название лид-магнитов. Оно должно быстро цеплять и попадать в запрос, поэтому хорошо поработайте над названием, а не только над начинкой
Шаг №3 Создание автоворонки в Manychat под каждый лид-магнит/сегмент аудитории
Шаг №4 Запустите рекламу с целью «Сообщение»
— Она направлена на поиск людей, которые лучше всего покупают или оставляют заявки, в нашем случае подписываются
— С целью «Сообщение» цена клика может быть выше, чем с целью трафик. Зато аудитория получается максимально целевой
Тут пригодятся чат-боты для внедрения автоворонки. С его помощью от 7 руб будем получать подписчика сразу в 2 канала Instagram и Telegram.
1. Идем в manychat и создаем чат-бота
2. Прописываем сценарий для рассылки в боте
3. Создаем сообщение, которое будет отправляться после запуска бота Сообщение должно содержать файл на ваш лид-магнит
4. Перенаправляем людей на телеграм канал для получения пользы, чтобы также подписался и туда
5. Продумываем недорогой продукт. Покупая который новая аудитория окупает трафик
Парсинг Instagram в промышленных масштабах
В декабре 2020 года я завершил работать в научном институте и сразу же увлёкся задачей добычи данных из соцсетей, в частности из Инстаграма. Прежде я работал только с готовыми данными, поэтому мне всегда было интересно, как эти данные можно добывать. За несколько дней до Нового Года я написал достаточно базовую статью про то как парсить Инст. В первых числах января мне написал заказчик и попросил сделать для него масштабный парсер инстаграма, который был бы способен делать более 10.000 запросов в сутки.
С тех пор прошло уже больше полугода, за которые я набил всевозможные шишки в данной области и написал промышленный парсер, который способен делать сотни тысяч, если не миллионы запросов в сутки.
В рамках данной статьи я хочу рассказать про путь развития своего Pet-Project в потенциально мощный и серьёзный инструмент. Впереди вас ждёт увлекательное путешествие от хранения данных в простых Json-ах на жестком диске сервера, до облачной базы данных и автоматической инициализации cron расписания запуска процессов внутри докер контейнера, поехали!
Ещё немного занудства
Какую задачу я решал?
Сразу после написания первой статьи, ко мне обратился заказчик с вопросом, смогу ли я извлекать из инстаграмма данные о том, как пользователи обмениваются лайками.
Задача была следующая. Дана группа пользователей (несколько тысяч), необходимо в режиме реального времени отслеживать, как они ставят лайки друг другу. То есть собирать лайки, которые пользователи из выбранной группы ставят внутри этой группы, и отдавать эту информацию в виде «потока лайков» в стандартизированном виде.
Далее эти лайки должны «копироваться» в блокчейн VIZ, чтобы инстаграмеры не просто так лайкали друг друга, а получали цифровой социальный капитал. Впрочем, этой частью сервиса занимались специалисты на стороне заказчика.
Каким образом я её решал
Да, как вы ещё не раз убедитесь в процессе чтения, я люблю всё структурировать, поэтому ниже список разделов этой статьи:
Принцип майнинга данных из инстаграмма с помощью одного аккаунта, какие ограничения на это есть.
Каким образом можно распаралелить процесс извлечения данных на несколько исполнителей (Vanilla подход).
Как распаралелить процесс, но уже по-крупному. Переход от локальных баз данных к облачным.
Архитектура получившейся облачной базы данных (Firebase Realtime Databasse).
Оркестрирование процессов или как сделать так, чтобы всё работало параллельно и не сломалось.
Вычисление активной аудитории профиля в Инстаграм, создание кластера активных пользователей и его уплотнение.
Как я делал расписание процессов. Некоторая магия и танцы с бубном вокруг докера и crontab.
Логи + облачная база данных.
Полезные ссылки (API Instagram, прокси сервис, биржа аккаунтов инстаграм)
Outro + Размышления о будущем проекта.
Если вдруг вы специалист в области инстаграмма, работаете с рекламой, то мне очень интересно услышать ваше мнение, какие именно данные из Инстаграма вам нужны и какое дальнейшее коммерческое развитие может быть у моего проекта.
Для начала предлагаю освежить в памяти, каким образом можно получить открытые данные из Инстаграма.
А как вообще доставать данные, Recap
Во многом, на этот вопрос отвечает моя первая, максимально базовая статья (это чтобы вы не листали наверх в поисках ссылки).
Если кратко, то я использовал библиотеку на питоне, которая извлекает данные путём отправления запросов к неофициальному API инстаграмма. Есть множество библиотек, работающих таким образом. В своём проекте я использовал instagrapi, пожалуй самую современную и удобную библиотеку.
Что такое неофициальное API инстаграма
Если кратко, то неофициальное API притворяется приложением Инстаграм на андроиде и в шапке запроса прописывает свои специальные плюшечки, сигнатуры и всякое прочее, почитать больше про то как работают запросы к API можно тут.
В начале разработки промышленного парсера я создал новый аккаунт в инстаграме, подписался на пару своих друзей и начал активно исследовать пропускной канал такого метода «добычи данных».
К моему огорчению, разработчики инстаграмма создали ряд инструментов, препятствующих безграничной выкачке данных. И после серии запросов аккаунт, через который проводятся запросы, банится. Особенно, Инстаграмм банит за периодические запросы, между которыми небольшая разница во времени, то есть когда очевидно, что эти действия производятся алгоритмом.
Не более 150 запросов в день с одного аккаунта.
Добавить стохастчность во временные промежутки между запросами (например, sleep на рандомный промежуток времени).
Делать запросы разного типа (то есть, например, не только получение лайков для поста, но и просмотр подписчиков).
Разобрались с тем, как проводить запросы с одного аккаунта. Дальше необходимо понять, как организовать параллельную работу группы аккаунтов.
Vanila подход к распараллеливанию
На 150 запросах в день далеко не уедешь, надо что-то придумывать. В самом начале я подумал: «подержите моё пиво, я проходил параллельное программирование в вузе». Так начинается новая глава моего повествования.
Передо мной стояла задача организовать параллельный асинхронный процесс добычи данных несколькими исполнителями.
Процессы исполнители и процесс менеджер я планировал запускать по расписанию с помощью какой-нибудь специализированной утилиты (однако в итоге сделал монстра из докера и crontab).
Стыдно даже рассказывать, с чего я начал, но раз уж пообещал повествование про свой путь, то дерзайте. Начинал я с крайне примитивного подхода в виде хранения данных в json на жестком диске. То есть исполнители получали задание в формате json файла со специальным названием, соответствующим исполнителю, делали необходимые запросы, и затем процесс менеджер собирал результаты работы в один большой json файл.
Достаточно быстро я понял, что такая схема работы выглядит уж больно криво и костыльно и без какой-нибудь базы данных мне не обойтись.
Костыльное решение
База данных, Firebase Realtime Database
Мне не хотелось разбираться со сложными базами данных и с SQL, так как это чрезмерно затянуло бы процесс разработки. Благо, мои партнёры по веб студии, молодые и заряженные ребята, подсказали мне продвинутый стек разработки. В частности меня познакомили с Firebase Realtime Database, сервисом компании Google, созданным для упрощения процесса разработки приложений. Представьте себе, NO SQL облачная база данных, доступная из любой точки мира, где есть интернет.
Прежде я писал про то, как «поженить» Firebase Realtime Database и Телеграм ботов. Тут можно почитать про основы работы с этой базой даных.
Основными преимуществами такой базы данных для меня было то, что все данные в ней хранятся в виде json дерева и то, что интерфейс взаимодействия с ней выглядит максимально просто. И что это всё работает с моим любимым питоном! (Python Firebase SDK). Во многом, помочь разобраться с базой данных мне помог этот туториал.
Прежде чем интегрировать новую для меня технологию в серьёзный проект я начал с «игрушечного проекта» (Да, Pet Project внутри Pet Project) и интегрировал Realtime Database в моего телеграмм бота, который делает синтаксический анализ предложений. Он был сделан в рамках другого моего проекта и там была необходимость запоминать предложения, на которых алгоритм работает плохо.
На нынешнем этапе обрезка работает достаточно просто и зачастую падает для сложных предложений. Однако дерево строится в большинстве случаев.
Архитектура БД
Основу этой архитектуры я придумал за один продуктивный вечер где-то в начале марта, расслаблено программируя с бокальчиком вина (а потом уже и с бутылкой). Впоследствии я добавлял некоторые коллекции и разделы для более эффективной работы системы, либо для более гибкой её настройки.
Начнём с самых базовых структур, которые я использовал в этом проекте
User
Post
Ноль в last_check означает что пост ещё ни разу не был проверен.
Стоит отметить, что в post.likes хранятся в принципе все лайки оставленные под постом (то есть не только внутри нашей базы данных).
Также стоит отметить, что никакое API инстаграмма, даже самое продвинутое и хакерское не отдает больше 999 лайков для поста.
Если на посте больше 999 лайков, то будут отданы 999 некоторых лайков из всех (при этом нигде нет гарантии, что это будут 999 последних лайков).
Like
Коллекции
В корневом разделе базы данных Firebase Realtime Database хранится 6 коллекций (6 корневых разделов).
Executors
Данная структура хранит в себе все конфигурационные данные, необходимые для сбора лайков и добавления новых постов.
Сбор лайков может вестись параллельно и асинхронно несколькими исполнителями.
Executor Configs
Конфигурационный файл исполнителя:
Last Login Log
Лог последней авторизации в случае успеха имеет вид
Settings Dict
Конфигурация API исполнителя. Содерджит в себе куки файл для более удобной авторизации (и менее опасной с точки зрения потенциальной возможности бана аккаунта).
Пример для купленного аккаунта (обфусцированный). Такой объект генерируется во время первой авторизации.
Оркестрирование процессов
Разобрались с облачной базой данных (Если вы ещё не разобрались, то обязательно разберитесь, почитайте туториалы, уж очень классная штука). Теперь необходимо понять, как правильно использовать её для организации процесса майнинга данных группой аккаунтов.
Как любил говорить мой любимый преподаватель по программированию: «Разделяй и властвуй». Стараюсь придерживаться этого принципа. В инстаграме лайки имеют смысл только в контексте постов, на которые они были поставлены. Поэтому наша задача может быть разбита на две подзадачи:
Держать актуальной базу постов, выложенных пользователями
Держать актуальной мини базу лайков для каждого поста
Алгоритм работы процесса исполнителя выглядит следующим образом:
Процесс запускается по расписанию (про расписание будет отдельный раздел).
Логинится в аккаунт инстаграмма, используя при этом своё прокси (SOCKS5).
Случайным образом выбирает действие. Чтобы действия не были сильно похожи на действия робота. Исполнитель либо делает запрос на новые посты пользователя, либо на новые лайки, либо совершает случайное действие (лайк, посмотреть коменты, посмотреть подписчиков), либо вообще отдыхает.
Случайным образом выбирает индекс пользователя из соответствующего ему диапазона индексов.
Получает из облачной базы данных нынешнюю запись (будь это пост или пользователь).
Проводит запрос к Инстаграму.
Проверяет, изменились ли данные, если изменились, то обновляет запись в облачной базе данных.
Если действие было собрать новые лайки и на посте оказались новые лайки, то исполнитель выгружает новые лайки в облачную базу данных. Это необходимо чтобы поток лайков был в режиме реального времени. Исполнитель добавляет в облачную базу данных только лайки пользователей из базы пользователей. База идентификаторов пользователей хранится в виде json файла на сервере и обновляется раз в несколько часов.
Таким образом, у каждого исполнителя есть свой диапазон индексов в базе данных пользователей. У каждого пользователя есть идентификаторы опубликованных им постов. Также, у некоторых частей базы данных есть флаги блокировки, когда эту часть бд меняет процесс менеджер.
Вырезка из документации касательно оркестрирования.
Раз в несколько часов происходит перераспределение диапазонов индексов между исполнителями. Это нужно для того, чтобы минимизировать влияние заблокированных аккаунтов. Эта функция называется normalize_executors_split
Балансировка оркестрирования
Для улучшения процесса обработки баз данных была реализована балансировка оркестрирвоания
По расписанию (напр. раз в день) crontab запускает процесс-менеджер, который сортирует users_database по параметру last_check
Пользователи, которые не были проверены дольше всех, помещаются в специальную приоритетную очередь
normalize_split
Уплотнение кластера пользователей
Изначальную базу пользователей я решил брать с университетских кластеров пользователей. Делал я это следующим образом (да, я люблю списки).
Я брал несколько самых популярных университетских аккаунтов в инстаграме.
Для каждого аккаунта получал идентификаторы последних 20 постов.
Выкачивал все лайки для этих постов.
Для каждого пользователя, поставившего лайк считал суммарное количество лайков, которое он поставил на эти 20 постов.
Добавлял в свою базу пользователей тех, кто поставил N > 4 лайков (варьируемый параметр, я экспериментировал).
Интересный инсайт: Как оказалось, студенты МФТИ не так охотно ставят лайки друг другу в инстаграме, поэтому мой итоговый кластер состоял из студентов МГУ и ВШЭ (привет паблик hsemem).
Коммерческое предложение: Да, если меня читают товарищи таргетологи, то обязательно напишите мне, потому что вам ведь что-то похожее нужно для анализа аудитории? Я как раз планирую сделать сервис, который бы на базе нескольких аккаунтов схожей тематики выдавал бы их активную аудиторию.
manager — процесс для менеджмента системы.
Алгоритм работы следующий:
Загрузка всей базы данных пользователей и базы данных постов
Проставление пользователям количества лайков, которое они отдали внутри базы данных
Сбор всех лайков, поставленных внутри базы данных. Загрузка всех лайков в облачную базу данных
Перераспределение диапазонов индексов пользователей между исполнителями ( normalize_executors_split )
Балансировка оркестрирования ( choose_top_users_to_fetch )
Сохранение всех баз данных локально
manage_cluster — процесс уплотнения или расширения кластера (в зависимости от параметров)
Для увеличения связности базы данных пользователей раз в определенный промежуток времени запускается процесс, отсеивающий малоактивных пользователей и добавляющий пользователей активных (которые еще не в базе данных).
В облачной базе даных в разделе executors/cluster есть два параметра, влияющих на процесс формирования кластера.
ADD_FRACTION доля пользователей, которые добавляются (доля от текущего размера базы данных пользователей
Алгоритм работы процесса следующий:
Загрузка всей базы данных пользователей и базы данных постов.
Для каждого пользователя вычисляется количество лайков, которое они отдали внутри базы данных.
Пользователи сортируются по количеству лайков, поставленных внутри базы данных. Затем оставляется доля самых активных пользователей (от нынешнего количества пользователей внутри базы даных), равная REMAIN_FRACTION (число от 0 до 1).
Для каждого пользователя, поставившего лайк на пост, который есть в нашей, уже очищенной, базе данных также вычисляется суммарное количество лайков, которое они поставили пользователям внутри базы данных.
Эти пользователи также сортируются по количеству поставленных ими лайков. После чего в базу данных добавляется доля пользователей равная ADD_FRACTION (имеется ввиду доля от нынешнего количества пользователей внутри базы даных).
Затем запускается перераспределение диапазонов индексов пользователей между исполнителями ( normalize_executors_split ).
Расписание процессов
Значимой частью этого проекта, его безусловным сердцем, является логика запуска процессов по расписанию. Где-то внутри меня сидит бунтарь, которому постоянно хочется хардкора, поэтому расписание процессов я делал внутри докер контейнера с помощью crontab. Более того, конфигурационный файл crontab внутри докера постоянно синхронизируется с облачной базой данных. Когда я продумывал всю эту архитектуру я, безусловно, представлял себя вождём шаманов, совершающим некое таинство.
Воображаемый вождь шаманов
В файле crontab_config всего одна прекрасная строчка, которая вызывала процесс сборки файла с расписанием на базе данных в облачной базе данных. В результате получался файлик в 100 с чем-то строчек.
Как выглядел мой crontab файл
В результате получалась такая вот красота, не пугайтесь. sleep в командах исполнителей нужно чтобы процессы не запускались одновременно.
Создаваемый конфигурационный файл зависит от параметров, находящихся внутри раздела crontab в облачной базе данных.
Алгоритм работы следующий:
Из облачной базы данных подгружаются параметры формирующие расписание.
Создается текстовый файл, содержащий комманды для системной утилиты crontab.
С помощью os.system() вызывается команда установки конфигурационного файла внутрь докер контейнера.
Я посчитал важным сделать красивые и адекватные логи, поэтому их я также сохранял в облачную базу даных, что оказалось очень удобно. На базе логов, хранящихся в таком формате можно сделать, например, Телеграм бота, который по запросу будет присылать отчёт по успешности выполненных запросов и анализировать самые часто встречающиеся проблемы.
В структуре tasks_log хранятся логи, описывающие результат работы каждого запроса каждого исполнителя.
где каждый task_log имеет вид
в случае неуспеха task_log.payload имеет вид
Что ещё я использовал в проекте, полезные ссылки
Неофициальное API инстаграмма
Проблемка с нынешней версией сервиса
На момент написания статьи у данная библиотека имеет версию 1.9.13. В данной версии кроется коварная ошибка, которая, впрочем, достаточно просто чинится.
Кто-то просто забыл убрать строчку в 43й строке. Просто убираем скобочку и всё работает.
Прокси
Достаточно важный элемент данного проекта — это группа прокси, которые я использовал. Для каждого аккаунта у меня было своё уникальное прокси.
В своём проекте я использовал сервис webshare. Я взял 100 прокси, что стоило мне 2.75$ в месяц. Этот сервис я использовал и для других своих проектов, так что рекомендасьон.
Статистика использования прокси по моему проекту
Аккаунты в Instagram
Как я уже ранее упоминал, аккаунты инстаграмма у меня покупные. Никакого криминала, я брал самые простые и дешёвые автореги, они стоят примерно по 12 рублей за штуку. Вот и вот примеры бирж, на них много разных продавцов. Прежде чем покупать «большую котлету» аккаунтов, советую брать штучек по 10 на пробу и смотреть насколько они живучие. Если вдруг возниктут какие-то трудности с указанными ранее биржами, то другие такие биржи гуглятся по запросу: «Аккаунты Инстаграм авторег купить».
Outro + Будущее проекта
Чтобы не перегружать и без того уже внушительных размеров статью я оставил некоторые детали за кадром. Так например, к этому проекту прилагалось API, которое отдавало лайки по запросу за промежуток времени. Возможно, я ещё вернусь и допишу про этот проект позже. Сейчас же я хочу обсудить его потенциально будущее.
410 WEB
Последние несколько месяцев, в рамках своего Digital агенства, я достаточно плотно занимаюсь проектами так или иначе связанными с Digital Marketing. Насколько мне известно, достаточно часто возникает задача выкачки аудитории с нескольких инстаграмм профилей со схожей семантикой. Так вот, мой парсер позволяет выкачивать не просто аудиторию, а брать сразу самую активную, которая ставит лайки и оставляет комментарии. Так что, специалисты в области Инстаграм, жду обратной связи от вас, нужно ли вам такое; потому что я планирую упаковать свой бэкенд в полноценный сервис.
И да, в будущем планирую писать не только про программирование, например, у меня есть несколько сумасшедших маркетинговых идей для разных областей бизнеса, которые мне не терпится попробовать. Так что Stay Tuned.