Фолловеры в инсте - поиск тех, на кого вы подписались, а они вас бросили

Автор Val_Ery, 23-10-2021, 19:49:37

« назад - далее »

Val_EryTopic starter

Всем привет!

Изначально - Важно!!!
Если ваша стратегия существования в istagram состоит в коллекционировании тысяч аккаунтов, а там - может кто в ответ и подпишется, то, вероятно, читать пост вам будет не интересно. То же относится к владельцам закрытых аккаунтов.
Это - скорее запись для тех, кто использует "взаимные подписки".
Или для таких, как я, которые инициативы в поисках подписчиков не проявляют, а только реагируют на действия других пользователей, чье творчество кажется симпатичным (у нас, обычно, количество подписок и подписчиков отличается не сильно - у меня подписок примерно треть от количества подписчиков).
Или для добросердечных граждан, реагирующих на каждую подписку мухоментальной ответкой (у таких, количества обоих списков - вровень).
Получается... Пост для добродушных и без инициативных граждан :D

Приступаю

В силу того, что я тут на некоторое время выпал... отовсюду...
вернувшись в более-менее удовлетворительное состояние обнаружил, применительно к инсте, что за время моего отсутствия меня "покинула" довольно-таки приличная доля подписчиков.

Речь не об отписантах. Эти обычно отваливаются через день, максимум - два. Знаете, как "ежедневный шум": три пришло, два ушло. Тут - именно подписчики. С которыми мы общались в директе, обменивались комментами...
- Абидно, панимэшь? ::)

В общем... Решил узнать, кто ушел... Конкретно - никнейм пользователя.
Вопрос - как?
Можно, конечно, методом "тупого тыка": посмотреть имя акка в подписках, перейти в подписчиков и набором имени в поиске узнать, с тобой ли еще этот подписант. Метод хорош, когда и тех, и других у тебя меньше сотни...

Можно поискать в сети ресурсы, которые могут тебе предоставить какую-либо статистику. Но опять же, я не видел ресурсов, которые не требуют от тебя войти в свой профиль через их интерфейс. Доверие доверием, но безопасность к телу ближе :D

Кстати, если кто-нибудь знает ресурс, позволяющий безопасно работать со статистикой, поделитесь ссылкой, пожалуйста.

По итогу, решил поступить так, как для меня проще... используя следующие допущения...
а) акков, на которые я подписался сознательно и целенаправленно - пальцев двух рук будет много, чтобы их пересчитать; это - близкий круг
б) все остальные подписки - это реакция на интересного подписанта
в) сравнение при помощи grep вытащит из списка подписок только тех, которые отсутствуют в подписчиках; близкий круг (самостоятельные подписки), если имеет ответную подписку, в список не попадет

Итак, по шагам:

1. Забираем свои данные из Инстаграм.
Для этого, хоть на телефоне, хоть на компе открываете Профиль - Гамбургер (три полосы) - Настройки - Безопасность - в разделе Данные и История будет пункт меню "Скачивание данных".
После ввода почты и пароля (если делаете через браузер) нажимаете Запросить файл.
Через некоторое время на указанный email придет ссылка для загрузки архива с вашими данными.

Нюанс. Инста предлагает два варианта к загрузке: в html формате и в json. Я забрал в json

2. Загруженный архив содержит всё. Но меня интересуют всего два файла: followers.json и following.json из папочки followers and following. Выношу их из архива в специально созданный для тестов каталог.

3. Каждый из этих двух файлов - это нормальный json. Со своей структурой. Просмотр файлов показывает, что для моих целей (вытащить никнейм) необходимо работать с ключом value. Значение этого ключа - и есть ник аккаунта (тот, который присутствует в адресе).

4. Выбор инструмента для работы
Вообще, с данными json надо работать, используя или js, или питон, или php. Засада в том, что если я решу поделиться "инструментом" на пыхе или js с кем-нибудь, у кого по не понятной мне причине на домашнем компьютере не установлен веб-сервер, от инструмента толку буде zero...
Можно, конечно, на js и без сервера... Если кому потребуется - отпишитесь, сделаю (только не мгновенно, я еще болею)

Поэтому, я выбрал bash. Никакого парсинга - тупое удаление ненужного + сортировка (по алфавиту) + сравнение файлов + вывод результата.

Как запустить bash на винде.
Самый простой вариант (все мы здесь в какой-о степени разработчики) - установить git for widows. Линуксовая консоль в этот продукт встроена, шелл-скрипты запускать дает :)

5. Собственно, сам скрипт (извините за качество кода, просто накидал команд, чтобы работало).
Работает, кстати, шустро. Я результатом вполне доволен.


#!/bin/bash

# Скрипт размещается в одном каталоге с файлами followers.json и following.json
#
# На выходе:
# - два текстовых файла followers.txt и following.txt с никнеймами пользователей
# - файл both.txt, содержащий ники пользователей, которые есть в подписчиках и подписках
# - файл substructIngfromErs.txt содержит ники тех, кто тебя покинул (отписался)

# Задаем имена инстовых списков
flers=followers.json
fling=following.json

# Проверяем, есть ли эти файлы в рабочем каталоге. Если есть - обрабатываем
if [[ -f $flers ]]; then
  grep ""value":*" $flers > temp && mv temp followers.txt
  sed 's/ //g' followers.txt  > temp && mv temp followers.txt
  sed 's/"value"://g' followers.txt | tr -d ',' > temp && mv temp followers.txt
  sed 's/"//g' followers.txt  > temp && mv temp followers.txt
  sort  followers.txt  > temp && mv temp followers.txt
fi

if [[ -f $fling ]]; then
  grep ""value":*" $fling > temp && mv temp following.txt
  sed 's/ //g' following.txt  > temp && mv temp following.txt
  sed 's/"value"://g' following.txt | tr -d ',' > temp && mv temp following.txt
  sed 's/"//g' following.txt  > temp && mv temp following.txt
  sort following.txt  > temp && mv temp following.txt
fi

# Получаем нужный нам результат
comm -12 followers.txt following.txt > temp && mv temp both.txt # друзья на век
grep -vxF -f followers.txt following.txt > temp && mv temp substructIngfromErs.txt # отписанты


Для работы со скриптом, создаете файл с именем insta.sh. Копируете в него приведенный код. Сохраняете в каталоге с файлами из присланного инстой архива.
Далее, открываете каталог. Если установили git, то в контекстном меню вам будет доступна опция "запустить git bash здесь". Запускаете, в консоли вводите название вашего скрипта
./insta.sh
и нажимаете Энтер. Всё.

По окончании работы в каталоге появится несколько текстовых файлов. Файл substructIngfromErs.txt будет содержать имена всех тех пользователей, на которых вы когда-то подписались и которые от вас отписались.

6. Как это можно использовать
- можно чистить свои подписки
Скрипт этого, к сожалению, автоматом не сделает. Но зато он вам предоставит список пользователей, которым ваш акк больше не интересен. Ваша задача - просмотреть список тех, кто больше не с вами, и решить, что с каждым конкретным отписантом делать дальше: отписаться самому или продолжать следить за его творчеством.
За время моей недееспособности меня покинуло 92 подписчика. Спасибо полученному списку, отписаться от них в ответ не составило особого труда.
- можно отслеживать субъектусов, которые работают на инсте отписантами.
То есть, речь о тех, которые в своих корыстных целях занимаются пессимизацией чужих акков: подписываются - выжидают день/два - и описываются. Я отловил таких акков аж четыре штуки. После чего со спокойной совестью их заблoкировал.

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

То есть, тут стратегия такая:
- получили один список отписантов
- почистили подписки
- через неделю получили второй
- сравнение двух списков покажет: если один и тот же субъект присутствует в обоих - значит это кандидат на блoкировку
Получить строки, присутствующие в обоих списках можно так (в git bash).

comm -12 substructErsfromIng.txt substructErsfromIng2.txt > temp && mv temp blockCandidate.txt

Использую comm, ну... потому, что он здесь удобнее

В общем, как-то так...
Проверяйте :)
Если кому-нибудь покажется полезным - буду рад ::)
  •