jsonscraper

Як створити щоденний моніторинг IG-креаторів на Python

Пайплайн для маркетолога чи аналітика: отримуйте публічні дані профілів, зберігайте знімки та знаходьте зміни без ручної перевірки акаунтів.

Редакційна політика Повідомити про помилку

Маркетинговій команді доводиться вручну перевіряти десятки акаунтів, щоб зрозуміти, хто з потенційних креаторів активний, як змінюється аудиторія та коли профіль оновлювали востаннє. Разова таблиця швидко застаріває: кількість підписників і опис профілю змінюються, а дати публікацій та показники окремих дописів доводиться збирати заново.

Стаття: Як створити щоденний моніторинг IG-креаторів на Python
Короткий опис: Показуємо, як автоматизувати щоденний моніторинг списку публічних профілів IG через IG Scraper API: запитувати профілі, зберігати історію спостережень і формувати звіт про зміни.
Призначення зображення: обкладинка — центральна ідея
Розділ: 
Візуальний сюжет: Концепція панелі конвеєра даних: упорядкована сітка карток публічних профілів у соціальних мережах передає датовані JSON-записи до простої аналітичної панелі
© jsonscraper · ілюстрація, створена ШІ

Практичне рішення — вести невеликий журнал спостережень: раз на добу запитувати публічні профілі за заздалегідь складеним списком, зберігати відповідь із часом збору й порівнювати нові значення з попередніми знімками. Такий підхід допомагає відібрати акаунти для подальшої ручної перевірки, оцінювати активність і готувати регулярні звіти. Він не замінює аналітику власника акаунта: наприклад, публічні відомості про профіль не дають доступу до внутрішніх показників охоплення.

Спершу визначте, що саме потрібно відстежувати

Для пошуку потенційних партнерів зазвичай достатньо короткого списку полів: ім’я користувача, ідентифікатор профілю, ознака верифікації, кількість підписників, кількість публікацій, біографія та час збору. Ці значення дають змогу помітити зміни в профілі й порівнювати акаунти за обраною нішею. Фактичні поля залежать від відповіді API; перед обробкою перегляньте актуальний JSON у документації та не покладайтеся на поля, яких там немає.

Щоб відстежувати активність із публікаціями, профілі можна доповнити даними про дописи. У карті IG Scraper API перелічено окремі маршрути для медіа користувачів і відеокліпів, а також запити для медіа та коментарів. Додавайте їх окремим етапом після перевірки профілю: спершу підтвердьте потрібні параметри й формат відповіді в Postman, а потім фіксуйте лише ті поля, які справді потрібні вашому звіту.

Корисне правило моніторингу: зберігайте необроблені відповіді окремо від нормалізованих рядків. Необроблений JSON дає змогу повторно перевірити інтерпретацію, якщо відповідь API зміниться; нормалізована таблиця зручна для графіків і фільтрів. В обох випадках зберігайте час запиту, щоб відрізнити актуальне значення від історичного.

Підключіть IG Scraper API

У jsonscraper базова адреса IG API — https://ig.jsonscraper.com. В офіційній документації наведено запит профілю за іменем користувача: GET /v1/user/by/username із параметрами username, license_key і cache_timeout. Наприклад, для тестового акаунта в документації показано URL такого вигляду: https://ig.jsonscraper.com/v1/user/by/username?username=apple&license_key=YOUR_LICENSE_KEY&cache_timeout=60. Параметр кешування використовуйте лише відповідно до умов конкретного маршруту й власного завдання: частота опитування має відповідати тому, наскільки швидко вам потрібні оновлення.

Щоб перевірити структуру відповіді, відкрийте сторінку IG Scraper API і перейдіть до пов’язаної колекції Postman. У прикладі успішна відповідь містить статус, об’єкт ig з ідентифікатором профілю, іменем користувача й ознакою верифікації, а також часову позначку. У документації окремо перелічено групи маршрутів для користувачів, медіа, пошуку, хештегів і локацій; це дає змогу розширювати збір у міру уточнення аналітичного завдання.

Зберігайте ключ API у змінній середовища, а не у вихідному коді чи клієнтському застосунку. Документація jsonscraper радить зберігати ключ у середовищі й не вбудовувати його в клієнтські збірки. Доступ до ключа в робочому процесі варто обмежити: наприклад, залишити його лише фоновому завданню збору даних.

Мінімальний робочий приклад на Python

Наведений нижче скрипт читає імена користувачів зі змінної середовища, запитує кожен профіль і записує дані у файл JSONL. JSONL зручний для початкового прототипу: один рядок — один знімок. Код навмисно зберігає весь об’єкт відповіді, а не припускає, що всі поля профілю завжди наявні. Після першого запуску вивчіть фактичну відповідь і лише потім створюйте стабільну схему таблиці.

import json
import os
import time
from datetime import datetime, timezone
from pathlib import Path
from urllib.parse import urlencode
from urllib.request import Request, urlopen

API_KEY = os.environ["JSONSCRAPER_LICENSE_KEY"]
USERNAMES = [name.strip() for name in os.environ["IG_USERNAMES"].split(",") if name.strip()]
BASE_URL = "https://ig.jsonscraper.com/v1/user/by/username"
OUTPUT = Path("instagram_profiles.jsonl")


def fetch_profile(username: str) -> dict:
    query = urlencode({
        "username": username,
        "license_key": API_KEY,
        "cache_timeout": 60,
    })
    request = Request(f"{BASE_URL}?{query}", headers={"Accept": "application/json"})
    with urlopen(request, timeout=30) as response:
        return json.load(response)


with OUTPUT.open("a", encoding="utf-8") as output:
    for username in USERNAMES:
        collected_at = datetime.now(timezone.utc).isoformat()
        try:
            payload = fetch_profile(username)
            row = {
                "collected_at": collected_at,
                "requested_username": username,
                "ok": True,
                "payload": payload,
            }
        except Exception as exc:
            row = {
                "collected_at": collected_at,
                "requested_username": username,
                "ok": False,
                "error": str(exc),
            }

        output.write(json.dumps(row, ensure_ascii=False) + "\n")
        output.flush()
        time.sleep(1)

Перед запуском задайте конфігурацію в середовищі:

export JSONSCRAPER_LICENSE_KEY="ваш_ключ"
export IG_USERNAMES="creator_one,creator_two,creator_three"
python monitor.py

Пауза в прикладі потрібна для послідовної обробки списку без надмірного поспіху; це не заявлене обмеження API. Для робочого розкладу налаштуйте частоту й обробку помилок з урахуванням вашого тарифу, документації та вимог до актуальності. Якщо запит завершився помилкою, збережений запис допоможе виявити проблему, а не непомітно пропустити акаунт.

Нормалізуйте дані після перевірки відповіді

Після того як ви вивчили відповідь для потрібного маршруту, виділіть стабільний набір колонок. Наприклад, таблиця спостережень може містити час збору, username, ідентифікатор профілю, перевірений статус відповіді й потрібні лічильники — якщо вони наявні в JSON. Для кожного поля чітко визначте, що робити, якщо воно відсутнє: зберегти порожнє значення, позначити запис як неповний або спрямувати його на повторну перевірку.

Не перезаписуйте вчорашній рядок сьогоднішнім значенням. Історія знімків потрібна, щоб обчислювати різницю між датами й помічати зміни. Для кількості підписників обчислюйте різницю між сусідніми успішними спостереженнями одного профілю; порівнювати за стабільним ідентифікатором краще, ніж лише за іменем користувача, яке може змінитися.

Необроблену відповідь варто зберігати обмежений час, якщо вона містить більше даних, ніж потрібно для звіту. Нормалізована таблиця має містити лише поля, обґрунтовані конкретним завданням. Для публічного дослідження креаторів це зазвичай зменшує обсяг даних і спрощує пояснення мети їх збору.

Додайте щоденний запуск і сповіщення

На сервері скрипт можна запускати за розкладом за допомогою, наприклад, cron, а в автоматизаторі — за розкладом і через HTTP-запит. Базовий ланцюжок складається з тригера, зчитування списку профілів, послідовного виклику маршруту, перевірки успішної відповіді, запису рядка у сховище та підготовки зведення. У n8n або Make ті самі етапи зручно розділити на окремі вузли, щоб збій одного профілю не зупиняв обробку всього списку.

Для звіту розраховуйте прості показники: скільки профілів успішно оброблено, у яких змінилася кількість підписників порівняно з попереднім успішним знімком і коли востаннє оновлювався запис. Окремий список помилок допомагає швидко виявляти хибні імена, недоступні профілі та тимчасові проблеми із запитами. Якщо додаєте публікації, спершу узгодьте потрібну глибину історії й набір полів, а потім підключіть відповідний маршрут із документації.

Кешування також варто налаштовувати обдумано. У документації cache_timeout описано як параметр підтримуваних маршрутів для повторного використання нещодавніх результатів. Для щоденного порівняльного звіту виберіть режим, що відповідає потрібній актуальності даних; не змішуйте кешовану відповідь із новою контрольною точкою, не позначивши це в журналі.

Що покаже такий моніторинг

Після накопичення знімків команда матиме перевірювану історію спостережень за вибраними публічними профілями. Можна порівнювати зміни лічильників, знаходити записи, які давно не оновлювалися, і складати короткий список акаунтів для ручної оцінки. Якщо збір медіа доступний для обраного маршруту й завдання, до профілів можна додати публікації та аналізувати темп постингу чи формати контенту — за умови, що наявність конкретних полів підтверджена документацією.

Використовуйте метрики як фільтр для дослідницької роботи, а не як автоматичне рішення щодо співпраці. Кількість підписників сама по собі не описує відповідність аудиторії бренду, якість контенту чи комерційну придатність автора. Додайте ручну перевірку профілю й зберігайте критерії відбору окремо від технічного збору даних.

Для пробного запуску відкрийте колекцію IG API в Postman, налаштуйте ключ і виконайте запит профілю. Потім перенесіть перевірені параметри у скрипт або автоматизацію. Так ви отримаєте відтворюваний щоденний збір, історію змін і основу для аналітичного звіту, не створюючи власний парсер вебсторінок із нуля.

People

No people listed for this article yet.

Keep readingЯк вимірювати динаміку контенту конкурентів в IG: API-пайплайн на Python
Read the next article

Перетворіть прочитане на робочу інтеграцію

Досліджуйте API соціальних даних jsonscraper, тестуйте запити й створюйте нові процеси.

Переглянути API