Быстрый, асинхорнный чекер наличия сторисов в инстаграм! [Instagram StoryChecker] {Async/await}

  • Автор темы Автор темы ZComand
  • Дата начала Дата начала

ZComand

Client
Регистрация
02.02.2016
Сообщения
57
Реакции
63
Баллы
18
Здравствуйте товарищи!
Кто-то участвует в конкурсах что-бы срубить монеток, кто - то чтобы поддержать свою репутацию, ну а Я участвую что-бы с с вами познакомиться и показать что я умею :).

И так вашему вниманию предлагается шаблон написанный на C# который проверяет у пользователей инстаграм наличие сторис (кто не знает это коротенький видосик открывающийся при клики на аватарку). Идея сделать этот шаблон пришла после изучения конкурсных статей в частности после прочтения Король социалок 11: Сборная солянка.
Меня честно поразила простота реализации темы по заработку казалось бы на пустом месте. Но возникала проблема, в большой базе пользователей сторис бывает только у 10% юзеров, и чтобы найти их нужно потратить много времени. Вот эту проблему я и решил :)

Что вам понадобится:

  1. Много прокси любого качества. Чем больше прокси у вас будет тем больше потоков можно запустить.
  2. Список юзернеймов пользователей инстаграм. Кто работает с инстаграмом имеет достаточно большие базы, ну а для тех у кого нет, можно воспользоваться множеством сервисов или решений по сбору ЦА в инстаграм.
Настройка:
Все очень просто.. Указали список пользователей, указали список прокси и количество потоков и запустили в работу.
Шаблону для работы нужен всего один поток в зеннопостере, в этом потоке запускается множество асинхронных операций (вы этот параметр указываете в настройках).

Vm6yvw7T46Gjjr[1].png


Количество потоков рекомендую указывать 10% от количества прокси в списке. Инстаграм не любит когда много запросов идет с одного IP и блокирует их.

Что на выходе:
UsersWithStory.txt - тут лежат те у кого есть сторис.
UserNameNotResolv.txt - тут лежат те кого нет в инстаграм (ведь юзер может сменить свой юзернейм).
Из файла пользователей данные удаляются, и работа шаблона прекращается в том случае если в списке пользователей или в списке прокси нет строк.
Это важно, по этому указывайте копии списков ВСЕГДА!!!

Для тех кому интересно что под капотом:

Там все просто ... 2 класса один из них статический Worker - он отвечает за запуск парсинга в асинхронном режиме.
Второй CheckStoryUsername - реализует всю асинхронную логику работы.

Что это такое асинхронная логика?
Действительно слишком часто это слово звучит. и чтобы его понять приведу простой пример:
Думаю что всем понятен основной способ управления каким либо транспортным средством, по факту мы имеем несколько основных задачь:
1. Крутить руль;
2. Нажимать педали;
3. Контролировать дорожную обстановку;
5. Включать дополнительное оборудование(поворотники, фары, кондей);
6. материться на проезжающие мимо автомобили )); (без этого водитель не водитель)

Так вот все эти задачи может выполнять один ПОТОК (водитель) асинхронно, если рядом с водителем появится пассажир то какие то задачи основной поток может делегировать второму потоку, но он есть не всегда ))).

т.е. Чтобы включить поворотник не нужно блокировать остальные действия а просто запустить эту задачу и не ждать ее выполнения.
Но вот если бы у нас не было асинхронных операций, тогда на каждую из выше перечисленных задачь, мы бы создавали отдельный поток(ну короче чтобы управлять автомобилем нужно было бы в салоне иметь как минимум 6 водителей).

Сумбурно как то все получилось, надеюсь понятно )), если что спрашивайте, я обязательно отвечу. Всем удачи!!!
 
Номер конкурса шаблонов
  1. Четвертый конкурс шаблонов
Уровень сложности
Продвинутый
Категория
  1. Чекер
  2. SMM

Вложения

В чем преимущество асинхронности перед потоком?
1. асинхронный код выполняется в текущем контексте - параллельный код требует отдельного контекста!
2. Любую асинхронную операцию можно реализовать так что она будет возвращать значение, соответственно мы можем контролировать результат, ошибки - в случае работы параллельных потоков мы знаем только то что поток работает или уже завершился.
3. В самом конце старт поста написано: Что в случае асинхронного выполнения нужен всего один водитель, а параллельного целых 6 )).

Конечно в каждой реализации есть свои недостатки, допустим в разрезе работы с зеннопостером асинхронный код не возможно реализовать в рамках кубика "Свой код", в то же время организовать параллельный запуск потоков в этом кубике нам ни что не мешает.
 
Спасибо! ))
 
Спасибо за шаблон, работает как часы)
 
  • Спасибо
Реакции: ZComand
Я старался )) ну жно ведь как то о себе заявить !
 
  • Спасибо
Реакции: Chery_kek
в один поток долго чекать будет? Какова скорость с одного потока допустим?
 
ZComand
какая минимальная версия зенки нужна? моя 5.16 не хочет работать
 
если что спрашивайте, я обязательно отвечу. Всем удачи!!!
- Какая скорость чека? У меня 500 аккаов проверялось час в 50 потоков на рабочих паблик проксях
- шаблон редактировать можно? у меня один кубик в одну строку
 
- шаблон редактировать можно? у меня один кубик в одну строку
Смотри в OwenCodeUsing весь код там.
на рабочих паблик проксях
Значит такие прокси - попробуй поиграть с временем отклика на проксе, я кажется ставил менее секунды, по этому критерию Паблики имеют слишком маленький %% онлайна.
 
  • Спасибо
Реакции: vezunppc
Смотри в OwenCodeUsing весь код там.

Значит такие прокси - попробуй поиграть с временем отклика на проксе, я кажется ставил менее секунды, по этому критерию Паблики имеют слишком маленький %% онлайна.
Какой максимальной скорости проверки удалось достичь?)
 
За шестую задачу в примере отдельное спасибо.
 
Понял ( код в общем коде )
 
Последнее редактирование:

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