Заметки — Игорь К.

Как я помог организовать мониторинг и сохранение публичных видеостримов

На стриминговых платформах трансляции часто запускаются без расписания. Страницы могут оставаться неактивными часами, а затем в любой момент переходить в режим прямого эфира. Если такие трансляции нужно фиксировать и сохранять, ручной контроль быстро перестаёт работать.

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

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

Контекст: стримы ведут модели

На платформе работают модели — живые авторы трансляций. Каждая из них выходит в эфир по собственному графику:

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

Даже при работе с одной моделью это означает необходимость постоянно возвращаться к странице и проверять её состояние. В случае заказчика таких страниц было три — и уже на этом объёме ручной процесс стал трудоёмким и неудобным.

В чём была основная сложность

Проблема была не в сохранении видео как таковом, а в самом процессе наблюдения:

  • нужно регулярно проверять несколько страниц, чтобы не пропустить начало эфира;
  • невозможно надолго отвлечься без риска что-то упустить;
  • видео становится доступно только в момент начала трансляции;
  • внимание постоянно тратится на ожидание.

Даже три модели требуют постоянного внимания. При дальнейшем расширении списка моделей к этому добавляется ещё один слой сложности — ресурсный.

Как выстроена система мониторинга

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

В упрощённом виде логика работы выглядит так:

  • Отслеживание состояния страниц. Скрипты регулярно проверяют состояние страниц и понимают, активна ли модель в данный момент. Если трансляции нет, система не выполняет лишних действий.
  • Режим ожидания. Пока эфиры не идут, мониторинг работает с минимальной нагрузкой и просто ждёт изменений.
  • Фиксация начала трансляции . Когда модель выходит в эфир, система автоматически фиксирует переход страницы в активное состояние.
  • Обнаружение видео. В момент начала трансляции система определяет, что на странице появилось активное видео и его можно сохранять.
  • Сохранение и продолжение мониторинга. После завершения эфира система возвращается в режим ожидания и продолжает работу без участия человека.

Почему такой формат оказался удобным

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

В случае с тремя моделями эта нагрузка просто утраивается: внимание распыляется, возрастает риск пропустить начало трансляции, а сам процесс превращается в постоянное ожидание.

Автоматический мониторинг снимает эту нагрузку: система сама следит за состоянием страниц и реагирует только тогда, когда действительно начинается трансляция.

При увеличении количества моделей появляется вторая задача — управление ресурсами:

  • возрастает нагрузка на сервер;
  • увеличивается потребление сетевой пропускной способности;
  • появляются ограничения по количеству параллельных операций.

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

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

Надёжность и длительная работа

Отдельное внимание уделено стабильности:

  • система рассчитана на длительную работу без остановок;
  • при отсутствии активности не расходует ресурсы;
  • корректно восстанавливается после временных сбоев;
  • по логам понятно, что происходит и в каком состоянии мониторинг.

Это позволяет использовать решение в повседневной работе без возврата к ручному контролю.

Результат

В итоге заказчик перестал тратить время на постоянное наблюдение даже за этими тремя страницами.
Мониторинг и сохранение трансляций выполняются автоматически, иногда нужно сопровождать систему, следить за состоянием и адаптировать под изменения.

Такие задачи редко удаётся закрыть одним готовым инструментом.
Обычно приходится учитывать особенности конкретной платформы, подстраивать логику мониторинга и со временем её поддерживать.

Как скачать видео с boosty

На гитхабе, пользователь tsvtt опубликовал как скачать видео с бусти.

  1. Открыть страницу с видео, видео должно быть видно на странице, можно запустить, но это не обязательно.
  1. Открыть средства разработчика в браузере
    для открытия нажмите
    Ctrl+Shift+C
  1. Открыть вкладку с консолью — Console
  1. Выполнить:
document.querySelector('vk-video-player').store.actions.internal.downloadVideo()
  1. Видеоролик скачивается в максимальном качестве

Инструмент для маркетингового SEO-аудита одной страницы

Этот инструмент для тех, кому нужно быстро и понятно оценить качество одной страницы: маркетологам, владельцам бизнесов, редакторам, SEO-специалистам и всем, кто работает с посадочными страницами, контентом и смыслом.

Цель инструмента — показать, как страница работает как маркетинговый объект, а не только как техническая web-страница.
Аудит раскрывает тему, структуру, фокус, семантику, сильные и слабые стороны страницы, и делает это в виде простого, читабельного отчёта.

Что это за SEO-аудит

Это автономный CLI-инструмент, который анализирует одну страницу — URL или локальный HTML — и формирует структурированный HTML-отчёт.

SEO-аудит собирает и оценивает: статус ответа и редиректы; скорость первого байта; title, description и заголовки H1—H6; тексты ссылок и структуру ссылочного окружения; изображения и alt-атрибуты; размер и структуру HTML; разметку Schema.org (JSON-LD, microdata, RDFa); данные PageSpeed Insights (по желанию); ключевые слова, леммы и тематические связи; муляжи, переспам и потерянные возможности; наличие и качество CTA-элементов.

Отчёт собирается в удобный HTML-документ с разделами, таблицами и краткими выводами.

Почему стандартных SEO-проверок недостаточно

Большинство инструментов хорошо работают с техническими данными, но почти не анализируют смысл и содержание.

Нужны ответы на важные вопросы:

  • совпадает ли тема страницы с тем, что заявлено в заголовках;
  • насколько выражен фокус текста;
  • есть ли в заголовках слова, которые почти отсутствуют в тексте (муляжи);
  • какие частотные слова из текста можно вынести в title/H1 (потерянные возможности);
  • нет ли переспама;
  • согласованы ли title → description → H1 → текст;
  • есть ли работающий CTA;
  • как страница выглядит как маркетинговое сообщение, а не как набор HTML-тегов.

Этот инструмент SEO-аудита старается закрыть эти вопросы.

Как работает SEO-аудит

Работа инструмента строится как последовательный анализ одной страницы — от загрузки до формирования финального отчёта.
Важный принцип: технические и смысловые проверки объединяются в единую логику.

  1. Загрузка страницы или чтение локального HTML
    Инструмент получает HTML двумя способами: загружает страницу по URL, фиксируя HTTP-статус, редиректы, скорость первого байта или открывает локальный HTML-файл, что полезно для просмотра черновиков и страниц на стадии разработки.
  1. Извлечение ключевых элементов страницы
    После загрузки HTML разбирается, и инструмент извлекает: весь текст страницы, заголовки H1—H6, ссылки и их тексты, изображения и alt-атрибуты, структуру документа (основные элементы, объём, вложенность).
    Это создаёт «карту страницы», на основе которой строится дальнейший анализ.
  1. Определение ключевых слов, лемм и частот
    Текст нормализуется, подсчитываются: леммы (нормальные формы слов), биграммы (частые двухсловные пары), частотность терминов.
    Это позволяет выявить реальные темы страницы и отличить их от случайных словоформ.
  1. Проверка согласованности сниппета
    Сравниваются title, description, H1 и фактический текст.
    Инструмент определяет: насколько тема страницы совпадает с заявленной в заголовках, есть ли расхождения между смыслом заголовков и содержанием, корректно ли раскрыта тема.
  1. Выявление семантических аномалий
    SEO-аудит отмечает ситуации, которые часто приводят к низкой вовлечённости и плохому ранжированию
  1. Сбор данных производительности (если включено)
    По желанию можно получить метрики производительности через PageSpeed Insights: оценку скорости загрузки, данные по Core Web Vitals, рекомендации по экономии времени загрузки, проблемные ресурсы.
  1. Анализ CTA и структуры контента
    Инструмент ищет элементы, которые могут быть CTA: кнопки, ссылки с призывами, текстовые формулировки действия.
    Дополнительно оценивается структура контента: блоки, параграфы, логичность подачи, наличие ключевых смысловых элементов.
  1. Выявление разметки Schema.org
    Инструмент сканирует страницу на наличие: JSON-LD, microdata, RDFa.
    Фиксируются типы структурированных данных и качество их оформления.
  1. Сопоставление данных с набором правил
    Все найденные элементы проходят через набор правил: технических, смысловых, семантических, контентных.
    Эти правила формируют оценки по разделам и определяют приоритеты.
  1. Формирование итогового HTML-отчёта
    Все результаты собираются в структурированный отчёт: краткое резюме, проблемы и предупреждения, таблицы с данными, анализ семантики и структуры, рекомендации и выводы.

Отчёт создаётся в виде одного HTML-файла, удобного для просмотра, пересылки и дальнейшей работы.

Главный принцип — объединить технический и содержательный анализ в одном документе.

Анализ ключевых фраз и лемм

Семантическая основа маркетингового аудита

Инструмент рассматривает текст как смысловую систему, а не как набор ключевых слов, вычисляет:

  1. Топ-20 лемм  — Ключевые темы страницы в нормализованном виде.
  2. Топ-10 биграмм — Частые двухсловные комбинации, которые формируют смысловые блоки.
  3. Фокусные термины — Слова, которые встречаются и в заголовках, и в тексте. Это ядро темы.
  4. Муляжи — Слова, которые указаны в заголовках (title/H1), но отсутствуют в тексте. Они показывают, что тема заявлена, но не раскрыта.
  5. Потерянные возможности — Частые слова из текста, которые отсутствуют в title или H1. Это точки роста для оптимизации.
  6. Переспам — Недопустимо высокая доля одного слова в тексте.
  7. Распыление темы — Если доля топ-лемм слишком низкая — текст теряет фокус.
  8. Согласованность сниппета — Проверка соответствия title, description и H1 содержанию страницы.
    Все эти данные выводятся в таблицах и списках отчёта.

Пример SEO-аудита

Аудит страницы kdm1.ru/marketing проведен 14 ноября 2025 года.

Аудит начинается с общего балла и скриншотов страниц, если проводился анализ pagespeed. На основе аудита kdm1.ru/marketing
В разделе доступность, можно посмотреть основные технические данные о странице, и если есть редиректы, то цепочку редиректов. В примере что-то с редиректами из https переходит в http и после в https. . На основе аудита kdm1.ru/marketing
Общее про SEO, можно посмотреть характеристики количественные и увидеть реально что в тайтле и дескрипшене. На основе аудита kdm1.ru/marketing
Можно увидеть все заголовки страниц — H1, H2, H3… На основе аудита kdm1.ru/marketing
Аудит проводится по всем структурированным данным, можно посмотреть внимательно что за данные, и после изменить. На основе аудита kdm1.ru/marketing
Во внутренних и внешних ссылках показывается где в коде находится ссылка и ее источник: текст, изображение, кнопка. На основе аудита kdm1.ru/marketing
Автоматический поиск призывов к действию. На основе аудита kdm1.ru/marketing
Раздел ключевые слова. На основе аудита kdm1.ru/marketing
Фокусные ключевые слова. Термины, которые есть в title/H1 и часто встречаются в тексте (≥3 раза). Это ключевые слова, вокруг которых реально крутится страница. На основе аудита kdm1.ru/marketing
Термины из title/H1, отсутствующие в тексте. На основе аудита kdm1.ru/marketing
Ключевые слова, которые часто встречаются в тексте, но отсутствуют в заголовках. Страница про это, но сниппет это не показывает. Рекомендуется добавить эти термины в title или H1. На основе аудита kdm1.ru/marketing
Анализ лемм. Лемматизация — это приведение слов к их базовой форме. Анализ лемм помогает выявить семантическое ядро страницы и проверить согласованность ключевых слов между заголовками и контентом. На основе аудита kdm1.ru/marketing
Леммы из title, description, H1, присутствующие и отсутствующие в тексте. На основе аудита kdm1.ru/marketing
Потерянные возможности: частые леммы из текста, отсутствующие в title/description/H1. На основе аудита kdm1.ru/marketing
Извлечённые поисковые фразы из title, description и основного текста после очистки от бренда, стоп-слов, коротких слов и маркетинговых терминов. Используйте эти фразы для проверки позиций страницы в поисковых системах. На основе аудита kdm1.ru/marketing

SEO-аудит показывает страницу не только как набор технических данных, а как: текст, структуру, тему, семантику, маркетинговое сообщение.

Это маркетинговый SEO-аудит одной страницы, который объясняет содержание понятным языком и помогает увидеть, что действительно мешает ей работать.

UPD: Добавлен текстовый анализ конкурентных страниц (страниц конкурентов)

Как протестировать инструмент SEO-аудита

SEO-аудит сейчас на этапе тестирования.
Можно получить бесплатный аудит одной страницы.
Достаточно написать мне в Telegram @fossko, сказать что вы хотите провести SEO-аудит, прислать URL, я пришлю HTML-отчёт и попрошу короткий отзыв.

У проекта есть сайт https://fadmin.ru

Заказать SEO-аудит →

Как я помог подготовить диплом по аналитике данных: от разрознённых файлов до законченного проекта

Ко мне обратился студент, который проходил обучение по направлению «Бизнес-аналитика и визуализация данных» в рамках профессиональной программы повышения квалификации.
Студент уже работал по специальности — аналитиком в коммерческой компании, где регулярно сталкивался с большими наборами данных, Excel-моделями и необходимостью строить отчёты для руководства.

Для диплома он выбрал тему, связанную с анализом данных своей компании (данные были анонимизированы и частично модифицированы для использования в учебных целях).
Но, как это часто бывает, набор исходников был большим, разрозненным и требовал серьёзной доработки, чтобы превратиться в полноценный аналитический проект.

В итоге работа над дипломом превратилась в комплексный проект по подготовке данных, созданию моделей, визуализаций и оформлению итогового документа.

Исходная ситуация

Аудит исходных материалов показал, что студент располагает: разрозненными Excel-расчётами, несколькими неполными PBIX-файлами, отсутствующей моделью данных, незавершённым текстом диплома, рабочей гипотезой без аналитической структуры.

Требовалось провести полную сборку проекта: данные → модель → визуализация → текст.

Цель: собрать всё в единый законченный диплом, который можно успешно защитить.

Какие задачи нужно было решить

  • Подготовить корректный набор данных. Очистка, нормализация и объединение таблиц. Корректировка типов данных. Устранение противоречий между файлами.
  • Построить аналитическую модель. Создание Power BI-отчёта. Построение полноценной схемы связей. Разработка DAX-мер и показателей. Формирование дашбордов для итоговой презентации.
  • Создать текстовую часть диплома. Теоретическая основа. Описание методики анализа данных. Практическая аналитическая глава. Выводы и рекомендации.
  • Подготовить материал к защите Презентация. Экспорт визуализаций. Структурированная итоговая папка проекта.

Хронология проекта

  • Первое обращение — 15 сентября 2025. Студент прислал архив с исходниками и запросил оценку.
  • Аудит файлов — 15—17 сентября (2 дня). Изучение Excel, .pbix, логики расчётов и структуры данных.
  • Подготовка данных — 18—28 сентября (11 дней). Чистка, нормализация, объединение таблиц, создание корректных датасетов.
  • Разработка Power BI-модели — 29 сентября—7 октября (9 дней). Построение схемы данных, настройка связей, создание мер DAX, визуализации, итоговый дашборд.
  • Подготовка текстовой части — 8—16 октября (9 дней). Оформление трёх глав, описание методики, аналитическая часть, вставка графиков, выводы.
  • Подготовка к защите — 17—20 октября (4 дня). Презентация, экспорт графиков, финальная упаковка проекта.

Итоговая длительность: 36 дней.

Исходные данные находятся на Яндекс диске, все таблицы описаны с проблемами которые встречаются
Прописаны вычисляемые столбцы и как производятся преобразования и очистка данных
Отдельно прописано как вычисляются меры и что они означают
Модель данных PowerBi
Дашборды с объяснением

Что было сделано

  • Подготовка Excel-моделей. Объединение разрозненных таблиц. Создание единой структуры данных. Нормализация и валидация. Проверка расчётов и формул.
  • Создание Power BI-отчёта. Разработка схемы данных, настройка связей (one-to-many, many-to-one), создание мер для KPI и метрик, визуализации в нескольких итерациях (до финальной версии 06v14), подготовка интерактивного дашборда.
  • Подготовка текста диплома. Создание структуры глав 1—3, теоретический материал, аналитическая часть по данным компании, вставка визуализаций, итоговые выводы.
  • Подготовка материалов для защиты. Финальный документ, презентация, экспорт диаграмм Power BI и систематизация всех файлов.

Проект включал:

  • Финальный `.pbix` (версия 06v14) — готовый Power BI-отчёт с полностью настроенной моделью данных, мерами DAX, визуализациями и финальным дашбордом, использовавшийся в дипломе и презентации.
  • Excel-файлы с расчётами — очищенные и нормализованные таблицы, включающие исходные данные, промежуточные расчёты, справочники, показатели и подготовленные датасеты, которые легли в основу Power BI-модели.
  • Промежуточные версии моделей — несколько более ранних вариантов `.pbix` и Excel-файлов, наглядно отражающих этапы формирования структуры данных, проверку гипотез, корректировку связей и визуализаций.
  • README с указанием структуры проекта — служебный файл, который фиксировал версии отчётов, расположение данных, описание изменений и структуру итоговой папки, чтобы проект можно было легко воспроизвести или проверить.

Как объединить разукомплектовочную ведомость и штрихкоды из 1С в единую систему Google Таблиц

Ко мне обратился мебельный магазин, который сотрудничает с Мебельной фабрикой «МИФ — Мебель Интерьер Форма».

Основная задача — привести в порядок таблицы, выгружаемые из 1С, и автоматизировать процесс сверки комплектов, упаковок и штрихкодов.

Исходные файлы можно скачать прямо с сайта фабрики: https://mebelmif.ru/specifications

Ситуация

Фабрика регулярно передаёт партнёрам Excel-выгрузки из 1С.
Это две большие таблицы, не связанные между собой:

  1. Разукомплектовочная ведомость — включает и изделия, и упаковки подряд, без чётких признаков, что к чему относится.
  2. Штрихкоды — отдельный список, где указаны коды упаковок (штрих и QR), но названия часто отличаются от тех, что в ведомости.

В результате у клиента появлялось десятки тысяч строк данных, которые приходилось сводить вручную — искать, где упаковка, где изделие, что относится к чему.
На это уходили часы работы, и любая новая выгрузка снова требовала ручного редактирования.

Фрагмент разукомплектовочной ведомости  — видно что все вперемешку и очень трудно отделить одно от другого
Фрагмент штрихкодов  — нет деления но штрих-код и QR-код

Задача

Собрать полностью автоматическую систему, где Google Таблицы:

  • сами определяют, где изделие, где упаковка;
  • к каждой упаковке подтягивают её родительский товар;
  • извлекают штрихкод и QR-код даже при сложном формате строки;
  • объединяют всё в единую таблицу по артикулам и характеристикам;
  • позволяют добавлять новые выгрузки без переделки формул.

Реализация

Проект построен в Google Таблицах и состоит из нескольких листов, каждый из которых выполняет свою роль.

Листы таблицы

  1. Исходные данные (RawData) — Чистая выгрузка из 1С (разукомплектовочная ведомость). Сюда клиент просто вставляет новые данные.
  2. Распознавание структуры (StructureMap) — Формулы ARRAYFORMULA + REGEXMATCH определяют, какие строки — изделия, какие — упаковки, и протягивают связи.
  3. Штрихкоды (BarcodesRaw) — Таблица с кодами упаковок. Извлекаются штрихкоды (13 цифр) и QR (всё остальное, включая пробелы).
  4. Штрихкоды обработанные (BarcodesReady) — Фильтрация и очистка: остаются только строки, где заполнены и название, и коды.
  5. Комплектность (Completeness) — К упаковкам автоматически подставляются изделия, характеристики, размеры, вес и количество.
  6. Выбор комплектности (Summary) — Финальный лист — объединённая таблица со всеми данными для анализа и выгрузки.

Схема связей между листами

[RawData]
    │
    ▼
[StructureMap] ─────────────┐
                            │
                     (по названию и характеристике)
                            │
          [BarcodesRaw] → [BarcodesReady]
                            │
                            ▼
                       [Completeness]
                            │
                            ▼
                       [Summary]

RawData → StructureMap — определение структуры и связей изделий с упаковками.
BarcodesRaw → BarcodesReady — извлечение и нормализация кодов.
StructureMap + BarcodesReady → Completeness — объединение упаковок и кодов.
Completeness → Summary — итоговая таблица с готовыми данными.

Технические решения

  • ARRAYFORMULA для автообработки без ручного протягивания.
  • REGEXMATCH и LOOKUP для логического связывания изделий и упаковок.
  • REGEXEXTRACT для разделения штрихкодов и QR, даже если они в одной ячейке.
  • XLOOKUP по двум полям (Пакет + Характеристика) для точного сопоставления.
  • Формулы работают динамически — достаточно просто вставить новые данные в RawData.
Фрагмент разделения комплекности на упаковку и изделие, делается в автоматическом режиме
Фрагмент готовых сштрихкодов, в автоматическом режиме штрихкод отделяется от QR-кода

Результат

Теперь достаточно загрузить в таблицу два файла с сайта МИФ —
и на листе «Выбор комплектности» (Summary) автоматически появляется итоговая сводная таблица:

  • изделия, их упаковки, размеры и количество;
  • коды (штрих и QR) из актуальной выгрузки;
  • всё обновляется без участия разработчика.
Итог работы — выбор комплектности  — получается итоговая таблица, где к каждому изделию автоматически подтягиваются упаковки, их размеры, вес и коды.

Как устроен маркетинг клиники «Сова»

Директор по маркетингу сети клиник «Сова» Марина Гребенникова, провела вебинар — 3,5 миллиарда выручки и 30% роста за год. Как устроен маркетинг клиник «СОВА»?

ВК: https://vk.com/video-215287702_456239037
Ютуб: https://www.youtube.com/watch?v=sc0Wforyp2c

Ключевые показатели в маркетинге медицины

  • Основной показатель — выручка по каждой клинике и юниту.
  • Анализируются ежедневные и ежемесячные данные для выявления отклонений.
  • Контролируются все каналы привлечения пациентов, включая лидогенераторы и личный кабинет.
Пример ежедневного отчета по выручки. Скриншот из вебинара 3,5 миллиарда выручки и 30% роста за год. Как устроен маркетинг клиник «СОВА»?
Пример контроля входящих заявок, который проходит еженедельно. Скриншот из вебинара 3,5 миллиарда выручки и 30% роста за год. Как устроен маркетинг клиник «СОВА»?

Анализ записей и отказов

  • Отслеживаются количество звонков и записи на прием.
  • Анализируются отказы по направлениям и регионам.
  • Важен анализ спроса и новых запросов для улучшения коммерческой стратегии.
Пример отслеживания количества звонков, контроля входящих заявок, который проходит еженедельно. Скриншот из вебинара 3,5 миллиарда выручки и 30% роста за год. Как устроен маркетинг клиник «СОВА»?
Пример аналитики пациентов по каналам, проводится ежемесячно. Скриншот из вебинара 3,5 миллиарда выручки и 30% роста за год. Как устроен маркетинг клиник «СОВА»?

Автоматизация аналитики

  • Разработка автоматизированного аналитического инструмента.
  • Использование различных источников данных, включая Яндекс.Метрику и Колтач.
  • Важность правильного сбора и анализа данных для принятия решений.
Пример разрабатываемой системы аналитики, и количество источников, которые используются в медицине. Скриншот из вебинара 3,5 миллиарда выручки и 30% роста за год. Как устроен маркетинг клиник «СОВА»?

Использование подрядчиков и фрилансеров

  • Предпочтение штатным специалистам, погруженным в нюансы работы.
  • Подрядчики используются для SEO и тех поддержки.
  • Важность тесного контакта и профессиональной оценки для достижения результатов.

Анализ конкурентов

  • Процесс анализа конкурентов требует ручного труда и времени.
  • Используются данные с сайтов, агрегаторов и колл-центров.
  • Важно углубляться в анализ при появлении новых конкурентов.

Текстовая версия в блоге Ранг — https://rang.ai/blog/marketing-seti-sova

Дизайн аналитических отчетов в PowerBi

Мария Гришина выложила курс по визуализации в Power Bi — общее время 6 часов

Верстка отчетов в PowerBI
Цвета в отчетах PowerBI
Расположение элементов на дешбордах в PowerBI
Навигация в отчетах PowerBI

Плейлист на Ютубе

ТГ каналы Марии:

API от платформы vc.ru

На ВиСи можно получить список статей определенного пользователя используя скрытый апи.

Что такое скрытый апи и как его найти, рассказывает Алексей Куличевский

На виси есть скрытый апи, находящийся по адресу

https://api.vc.ru/v2.8/
Ищется скрытый апи через консоль разработчика, в гугл хроме нажимаем ctrl+shift+С — переходим в вкладку Network

Для получения последний опубликованных статей пользователя
нужны следующие параметры отправляемые в гет запросе:

  • markdown: false — как отдаются статьи, на практике у меня всегда отдаются в html, не важно что стоит true или false
  • sorting: new — сортировка, можно использовать несколько видов: ’new’, ’hotness’, ’day’, ’week’, ’month’, ’year’, ’all’
    lastId: 1628356 — с какого последнего айдишника статьи продолжать показ, в получаемом джайсоне выводятся 12 элементов.
  • lastSortingValue: 1730444607 — я не разобрался что это за параметр, без него работает корректно
  • subsitesIds: 287399 — ай-ди пользователя статьи которого нам нужны

Гет запрос отправляем на адрес

https://api.vc.ru/v2.8/timeline
Результат выполнения гет запроса — нам нужны поля id — айди статьи, title — название статьи, дата и дата модификации — дата время в виде временной метки UNIX (число секунд, прошедших с 1 января 1970 года)

Код на питоне, для получения последних 12 статей опубликованных пользователем

import requests
import json
import datetime

url="https://api.vc.ru"
v_api="/v2.8/"
metod="timeline"
all_url=url+v_api+metod

markdown="true"
subsitesIds="287399"
sorting= "new"

params = {"markdown": markdown,
          "sorting": sorting, 
          "subsitesIds": subsitesIds}

response=requests.get(all_url, params=params)

data = response.json()
items = data['result']['items']
for index, item in enumerate(items):
        item_data = item['data']        
        print(f"Элемент {index + 1}:")
        print(f"ID: {item_data['id']}")
        print(f"url: https://vc.ru/{item_data['id']}")
        print(f"Title: {item_data['title']}")
        print(f"дата публикации: {datetime.datetime.fromtimestamp(item_data['date'])}")
        print(f"дата модификации: {datetime.datetime.fromtimestamp(item_data['dateModified'])}")  
        print()
Результат выполнения, если нам нужно собрать все страницы, то необходимо в параметрах передавать lastId — последний в списке айди статьи, тогда следующие будут начиная с этого ай-ди.

У Александра Первушина на гитхабе проект vcru-api, где опубликовано описание других методов, с помощью которых можно получить другие сведения, например комментарии к статье — метод comments, текст статьи — метод content

Нашлась документация по API vc.ru, dtf.ru

Не забывайте выбрать какой апи вы будете смотреть, в списке есть версия 2.31, на ноябрь 2024 года, используется версия 2.8
Дополнительные параметры которые можно посмотреть в методе timeline, оказывается можно передать несколько пользователей через запятую

Анализ пользователей vc.ru

На основании полученных данных можно провести анализ публикаций пользователей.
Например, пользователь Татьяна Боброва — с 15 апреля 2019 года по 22 ноября 2024 года опубликовала 5682 записи.

Тепловая карта количества постов по дням недели и часам публикации пользователь Татьяна Боброва
Тепловая карта общего количества реакций по дням недели и часам публикации пользователь Татьяна Боброва
Тепловая карта общего количества комментариев по дням недели и часам публикации пользователь Татьяна Боброва

Маркдаун в формат Эгеи

Эгея использует свой синтаксис, очень похожий на Markdown.

Иногда требуется опубликовать заметку которая сохранена в маркдаун разметке, например гугл документ можно экспортировать в маркдаун.

Для этого можно использовать скрипт на питоне

import re

def convert_to_egea(markdown_text):
    # Convert headers
    egea_text = re.sub(r'^### (.*)$', r'### \1', markdown_text, flags=re.MULTILINE)
    egea_text = re.sub(r'^## (.*)$', r'## \1', egea_text, flags=re.MULTILINE)
    egea_text = re.sub(r'^# (.*)$', r'# \1', egea_text, flags=re.MULTILINE)
    
    # Convert bold (leave as is)
    # Make sure to selectively replace *italic* with //italic// by considering ___not both_bold and italic___
    egea_text = re.sub(r'\*\*(.*?)\*\*', r'**\1**', egea_text)
    
    # Convert italic
    egea_text = re.sub(r'(?<!\*)\*(?!\*)(.*?)\*(?!\*)(?<!\*)', r'//\1//', egea_text)
    
    # Convert strikethrough (leave as is)
    egea_text = re.sub(r'~~(.*?)~~', r'--\1--', egea_text)
    
    # Convert links
    egea_text = re.sub(r'\[(.*?)\]\((.*?)\)', r'((\2 \1))', egea_text)
    
    # Convert blockquotes
    egea_text = re.sub(r'^> (.*)$', r'> \1', egea_text, flags=re.MULTILINE)
    
    # Convert unordered lists
    egea_text = re.sub(r'^\* (.*)$', r'- \1', egea_text, flags=re.MULTILINE)
    
    # Convert ordered lists
    egea_text = re.sub(r'^\d+\. (.*)$', r'1. \1', egea_text, flags=re.MULTILINE)
    
    # Convert images
    egea_text = re.sub(r'!\[(.*?)\]\((.*?)\)', r'\2 \1', egea_text)

    # Convert tables
    egea_text = re.sub(
        r'((?:\|.*\|\n)+)', 
        lambda match: f"-----\n{match.group(1)}-----\n", 
        egea_text
    )
  
    return egea_text

# Usage example:
markdown_text = """
# Заголовок первого уровня

## Заголовок второго уровня

### Заголовок третьего уровня

**Жирный текст**

*Курсивный текст*

~~Зачеркнутый текст~~

[Ссылка](http://example.com)

> Цитата

- Элемент ненумерованного списка

1. Элемент нумерованного списка

![Изображение](http://example.com/image.jpg)

**Основные выводы и тезисы мастер-класса Максима Ильяхова о соцсетях**

| Покупка | Ссылка в шапке Кнопка продажи Директ |
| one | two | three |
| 1 | 2 | 3 |
| raz | dva | tri |
| un | deux | trois |
"""

egea_text = convert_to_egea(markdown_text)
print(egea_text)

В переменную markdown_text — вставляем наш текст, на выходе получаем сконвертированный текс в переменной
egea_text

Результат выполнения, в разметке Эгея

Скрипт на гитхабе

Как узнать производительность процессора?

CPU Benchmarks — когда нужно узнать производительность процессора заходить на сайт cpubenchmark, в поиске ищешь модель процессора и сравниваешь.
Производительность в условных «попугаях» — но этого достаточно для сравнения нескольких процессоров.

Производительность процессора ноутбука 2026  — 24 611 попугаев, модель процессора Intel Core Ultra 7 155H
Производительность процессора ноутбука Aser Swift 3, 2024—2026  — 13 015 попугаев, модель процессора Ryzen 5 5500U
Ранее Ctrl + ↓