Интересное · InstaParser
Как очистить базу Instagram от дублей и нерелевантных профилей
Базу Instagram очищают в два этапа: сначала удаляют технические дубли по нормализованному username, затем исключают нерелевантные профили по заранее записанным правилам. Эти операции нельзя смешивать, потому что повторная активность может быть ценным сигналом, а нерелевантность требует объяснимого решения.

Короткий ответ
Базу Instagram очищают в два этапа: сначала удаляют технические дубли по нормализованному username, затем исключают нерелевантные профили по заранее записанным правилам. Остальные сигналы нужно сохранять отдельно, чтобы результат можно было проверить, сегментировать и обновить.
| Элемент | Что означает | Что делать |
|---|---|---|
| Точный дубль | Все поля совпадают | Оставить одну строку |
| Один username, разные источники | Повторная активность | Свести в одну строку, источники сохранить |
| Разный регистр или пробел | Техническое отличие | Нормализовать |
| Нерелевантная география | Не соответствует брифу | Исключить с причиной |
| Неясный профиль | Недостаточно признаков | Отдельная очередь проверки |
Пошаговый процесс
Рабочий процесс начинается с проверяемой цели и заканчивается паспортом выгрузки. Выполняйте шаги последовательно и сохраняйте исходный файл до фильтрации.
- Сохраните неизменяемую копию исходного файла.
- Зафиксируйте единицу строки и ключ дедупликации.
- Приведите username к нижнему регистру и уберите внешние пробелы.
- Сведите повторы, сохранив список источников и действий.
- Примените только заранее записанные правила релевантности.
- Проверьте случайную выборку исключённых и оставленных строк.
- Сохраните чистую базу, журнал исключений и паспорт обработки.
Чем дубль отличается от нерелевантного профиля
Дубль — это повторное представление одного профиля, а нерелевантная запись — уникальный профиль, не соответствующий задаче. Дубликат определяется техническим ключом, обычно нормализованным username. Нерелевантность определяется брифом: тематикой, географией, типом аккаунта или другим наблюдаемым признаком.
Смешивание двух операций делает очистку непрозрачной. Если строка исчезла, команда должна понимать, была ли она повтором или не прошла фильтр. Используйте отдельные поля `duplicate_of` и `exclude_reason` либо два последовательных листа.
Почему нельзя сразу удалить все повторы
Повторы между источниками показывают повторную активность пользователя. Один username в выгрузке лайков трёх Reels может быть ценнее профиля, встретившегося один раз. До удаления посчитайте число уникальных источников и типы действий.
Исходный файл должен оставаться неизменным. Создайте копию `raw`, рабочую версию `cleaning` и итоговую `clean`; не сортируйте и не перезаписывайте единственный экземпляр. Это позволяет проверить ошибку и восстановить связь с заданием.
Как нормализовать username перед дедупликацией
Нормализация приводит технически одинаковые значения к одному ключу. Уберите внешние пробелы, приведите регистр к нижнему, удалите ведущий символ `@` только в рабочем ключе и проверьте пустые значения. Исходное написание можно сохранить отдельно.
URL профиля нужно разбирать аккуратно. Уберите параметры после вопросительного знака и завершающий слеш, затем извлеките username. Не объединяйте профили по отображаемому имени: оно не уникально и может меняться.
Какой ключ использовать
Основной ключ — нормализованный username, если сервис не предоставляет устойчивый ID. При наличии открытого ID используйте его как первичный ключ, а username храните как атрибут. Смена username может создать ложное ощущение двух разных профилей.
Локальный тест удаления дублей от 24 августа 2026 года
Воспроизводимый тест использовал 100 000 синтетических строк и 80 000 уникальных username. Ровно 20 000 строк были повторно добавлены и перемешаны генератором с seed `20260824`. Дедупликация выполнялась словарём Python по username после `strip().lower()`.
| Показатель | Результат |
|---|---|
| Исходные строки | 100 000 |
| Уникальные username | 80 000 |
| Технические дубли | 20 000, или 20% |
| Число прогонов | 9 |
| Медианное время | 0,046 секунды |
Тест показывает работу алгоритма в локальной синтетической выборке. Он не измеряет скорость InstaParser, Excel или реального проекта: время зависит от компьютера, числа полей и способа чтения файла. Методика опубликована, чтобы цифру можно было воспроизвести.
Как задать правила релевантности
Правило релевантности должно использовать наблюдаемый признак и давать одинаковый результат двум проверяющим. Формулировка «интересный профиль» не работает. Формулировка «открытый профиль связан с Казанью по описанию или указанному адресу и публиковал тематический материал за последние 90 дней» проверяема.
Неясные записи лучше вынести в отдельную категорию. Отсутствие данных не равно несоответствию: закрытый профиль может быть целевым, но проверяющий не видит признаков. Метка `unknown` честнее автоматического отказа.
Мини-кейс очистки базы агентством
Мини-кейс показывает порядок расчёта. Агентство объединяет 6 200 строк из хэштегов и комментариев, получает 4 900 уникальных username, затем проверяет 300 случайных профилей. После применения брифа 178 записей остаются, 83 исключаются, 39 получают статус «неясно»; это расчётный пример, а не средняя статистика сервиса.
Как проверить качество очистки
Проверка нужна и для оставленных, и для исключённых строк. Возьмите случайные записи из обеих групп и попросите второго специалиста применить тот же бриф. Частые расхождения указывают на неясное правило, а не на невнимательность исполнителя.
Процент ошибки публикуют со знаменателем и методом отбора. Запись «7 ошибок из 100 случайно выбранных исключений» полезнее слов «база очищена на 93%». Проверка первых ста строк может быть смещена порядком выгрузки.
Какие поля оставить в чистой базе
- нормализованный username и исходное значение;
- список источников или число уникальных источников;
- типы наблюдаемых действий;
- дата сбора и дата проверки;
- статус релевантности и причина решения;
- версия правил очистки.
Минимизация данных уменьшает риск и стоимость поддержки базы. Статья 5 GDPR формулирует принцип как данные, «limited to what is necessary» для цели обработки; официальный текст доступен на EUR-Lex. Применимое право зависит от юрисдикции и сценария, поэтому спорные случаи согласуйте с юристом.
Как передать очищенный файл команде
Чистая база передаётся вместе с паспортом обработки. В паспорте укажите источник, дату, исходное и уникальное число строк, ключ дубля, правила исключения, объём ручной проверки и срок хранения. Без этого следующий сотрудник не сможет воспроизвести результат.
Практический финал — удалить лишние копии после приёмки. Оставьте контролируемый исходник, итоговый файл и журнал решений в защищённом месте, назначьте владельца и дату пересмотра. Бесконтрольные копии в мессенджерах и личных папках сводят пользу очистки к нулю.
Проверьте сценарий на своей задаче
Бесплатный тест помогает оценить источник, фильтры и структуру результата. Начните с малой выборки и масштабируйте только после проверки.
Попробовать бесплатно