Лидеры года — новая категория на Workspace Digital Awards! Номинируйте вашу команду, продукты и проекты.
Дмитрий Гапонов
Сбор юзернеймов из комментариев соцсети по ключевым словам с выгрузкой в Google-таблицу
Дмитрий Гапонов
#Разработка программного обеспечения

Сбор юзернеймов из комментариев соцсети по ключевым словам с выгрузкой в Google-таблицу

Дмитрий Гапонов Россия, Новосибирск
Поделиться: 0 0 0
Сфера

Информационные технологии и интернет

Сдано

Август 2026

Задача

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

Нужен был сборщик, который держит под наблюдением последние публикации профиля, раз в час забирает свежие комментарии, отсеивает по семи ключевым словам и дописывает юзернейм в Google-таблицу без повторов, с колонками про пост, слово и время.

Доступов к профилю заказчик давать не собирался и по ходу разговора сказал главное - настоящая задача это профили конкурентов, куда официальный интерфейс площадки не пускает в принципе. Это сразу закрыло лёгкий путь и определило всё остальное.

Решение

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

Дальше пошли грабли, каждая стоила отдельной проверки.

Признак «есть ещё комментарии» врёт. Приходит «нет» на первой же странице, хотя под постом 225 комментариев. Верить можно только курсору, и его надо кодировать в адрес, потому что это кусок JSON со скобками и кавычками. До правки скрипт брал четырнадцать комментариев из двухсот двадцати пяти.

Ответы в ветках лежат отдельным запросом. Из четырнадцати корневых комментариев десять имели ветки, и без них терялась половина людей. После правки стало 214 из 225.

Поиск подстроки по основе слова даёт мусор. «Стек» ловит «стеклянная банка» и «стекает», «бад» ловит «бадью» и «бадминтон», «разбор» ловит «разборчивый». Для блога про еду и добавки это был бы каждый второй ложный результат. Переделал на формы слов, а проверку фильтра встроил в сам скрипт отдельным ключом, чтобы её можно было прогнать без сети.

Каждое подключение к отладочному порту браузера поднимает окно с разрешением, а скрипт цеплялся дважды за запуск. Свёл к одному подключению, и часовой цикл теперь держит сокет открытым вместо переподключения каждый час.

Состояние скрипт хранит рядом с собой, поэтому повторный запуск не дублирует людей и не перечитывает разобранное.

Результат

Первый проход по десяти публикациям разобрал 1 370 комментариев вместе с ветками и дал 363 уникальных юзернейма по ключам. Разбивка по словам сразу показала главное - основную массу дают два поста, где блогер сам просил написать слово в комментарии, то есть ровно то, за чем заказчик и пришёл. Таблица отдана ссылкой на чтение, проверил её запросом без входа. Сборщик крутится раз в час и дописывает новых.


Стек технологий

  • Python Python Язык программирования

Оцените кейс
Спасибо за оценку
Выскажите мнение
Авторизуйтесь, чтобы добавить свой комментарий.
оставить заявку

Хотите заказать похожий проект?

Оставить заявку