Skip to content

InstaClient - extension to instagrapi for work with instagram: take info about who has follows, who unfollows, etc...

Notifications You must be signed in to change notification settings

kosumosuSpb/InstaClient

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

InstaClient (а это - временный readme)

Обёртка для instagrapi, сделана для расширения функционала, например, отслеживания того, кто подписался и отписался за какой-то период.

Что уже умеет:

  • ✔ снимать дамп подписчиков или подписок по введённому имени пользователя и сохранять локально в БД или txt (в тхт только подписчиков)
  • ✔ показ разницы между двумя дампами: кто подписался, кто отписался, на кого подписался, от кого отписался (или был отписан)
  • ✔ хранение данных в sqLite/MySQL/PostgreSQL (но тестировал только sqLite и в конфиги пока не вынес настройки БД)
  • ✔ работа с БД через ORM (Pony ORM)
  • ✔ отдельный файл с моделями
  • ✔ обновление пользователя в БД (инфой из инсты)
  • ✔ Решена проблема скорости получения подписчиков пользователя. Теперь это делается быстро и за один запрос (в instagrapi уже был этот метод, лол)
  • ✔ костыль для добавления колонок в БД (т.к. Pony ORM не умеет в миграции). Условно работает, но требует доработки. Пока может только добавлять колонку и только в sqLite.
  • ~ [в процессе] экспорт снапа из тхт в БД
  • ~ кеширование в файл (формально оно уже есть, т.к. есть в instagrapi)
  • ~ работа с прокси (формально есть в самом instagrapi, но у меня так и не завелось)
  • ✘ возможность скачать файл из бота
  • ✘ периодические задачи через Celery для автоматизации отслеживания изменений в профиле
  • ✘ возможно всё это в связке Flask+Celery+Redis+sqLite (или любая другая база)+PonyORM
  • ✘ докер
  • ✘ логи в файлах

Как пользоваться

Кратенько

пока всё заточено под локальную работу, но уже умеет сохранять в БД (пока тестил только sqLite)

Базируется на instagrapi, поэтому доступны все те же методы + методы расширения https://github.com/adw0rd/instagrapi

Для начала работы необходимо залогиниться (также в instagrapi есть возможность работы через прокси и с двухфакторной авторизацией, но здесь простой пример):

inst = InstaClient()
inst.login(login, password)

Для ленивых (если в конфиге прописаны INST_LOGIN и INST_PASS):

  • inst = InstaClient.create_and_login()

файлы дампа txt сохраняет в папку ./inst (если её нет, то создаёт)

конфиги ищет в config.py, описание его чуть ниже

Снять снап подписчиков пользователя user и сохранить в БД:

  • inst.save_followers(user)

Снять снап подписок пользователя user и сохранить в БД:

  • inst.save_followings(user)

Снять снап подписчиков пользователя user и сохранить в txt:

  • inst.save_followers(user=user, mode='txt')

Сравнить два последних снапа подписчиков пользователя user из БД:

  • inst.followers_changes_db(user)

Сравнить два последних снапа подписок пользователя user из БД:

  • inst.followings_changes_db(user)

Сравнить два последних снапа подписчиков пользователя user из txt:

  • inst.followers_changes_txt(user)

Формат конфига примитивный:

# Логин и пароль на вход
INST_LOGIN = ''
INST_PASS = ''
# двухфакторная авторизация

# DATABASE SETTINGS:
DB_SETTINGS = {
    'provider': 'sqlite',
    'filename': 'db.sqlite',
    'create_db': True,
}

# TIME_ZONE =

# Support socks and http/https proxy “scheme://username:password@host:port”.
PROXY = ''

ЗЫ: маниакально старался не использовать re, но возможно, что зря

название ещё не придумал:

  • InstaClient - рабочее
  • InstaGrappa ?
  • InstaGrappi -
  • InstagrYappi -
  • Instalker -
  • InstSpector
  • InstMon
  • Instrack -
  • InStat

Ветка instabot-engine, где я попробовал реализовать тот же функционал, но на устаревшем instabot, главный плюс которого в том, что он очень быстро получает список подписчиков - продолжена не будет и скорее всего её удалю за ненадобностью

About

InstaClient - extension to instagrapi for work with instagram: take info about who has follows, who unfollows, etc...

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages