Я уже давно пишу статьи про различные аспекты IT-технологий, инвестиции, автоматизацию и умные дома на разных площадках: Хабр, Т—Ж, СмартЛаб, Пикабу, VC.ru и других.
За всё время накопилось примерно 250 статей, которые по итогу свёл в таблицу. Но вот задумываться о популярности статей и их реальном эффекте стал относительно недавно.
Почему я решил собирать статистику публикаций?
Главной целью всех этих публикаций было поделиться своим опытом и при этом попытаться понять насколько вообще это важно и актуально для читателей. Однако обратная связь была не всегда очевидной: где-то комментариев вообще не было, а иногда на Хабре статьи набирали большой рейтинг при малом количестве комментариев (но это редко).
Однако очевидно одно — статистика заставляет посмотреть на материалы со стороны. Например статья про то, как я при помощи двух скриптов смог автоматически сгенерировать опись документов для 700 страниц на непрофильном Пикабу собрала три месяца назад почти 75 тысяч просмотров и 80 комментариев, а на Хабре эта же тема была не особо популярна.
Или статья про то, что читали на Хабре в 2024 году: анализ статей с Node.js, Google Sheets и каплей ChatGPT — собрала на Хабре три недели назад рейтинг +68, но «всего» 7 тысяч просмотров.
Зачем я написал Open Source скрипт?
Извлечение просмотров, комментариев, закладок и рейтинга из каждой статьи вручную занимало бы много времени, поэтому я решил пойти путём автоматизации. Написал скрипт, который скачивает эти данные по статьям и помещает сразу в одну удобную таблицу, где я вижу, какие темы стоит развивать дальше и на каких ресурсах.
Это Open Source скрипт, размещенный на Гитхабе, который состоит из Google Apps Script и Node.js частей и обе эти части работают с итоговой сводной Google Таблицей.
Если вы автор или агентство и хотите видеть полную картину популярности ваших материалов, выявлять, какие темы интересуют аудиторию, а какие требуют доработки, автоматизированный инструмент сбора данных — это то, что вам нужно. Я уже испытал это на себе и расскажу подробнее об этом в статье.
Особенности механизма парсинга сайтов, где размещены публикации
Изначально я использовал Google Apps Script внутри Гугл Таблиц для автоматизации извлечения просмотров, комментариев, закладок, рейтинга. Однако по мере того, как я расширялся на новые платформы, то обнаружил, что некоторые сайты ограничивают доступ к определенным данным, что потребовало от меня перехода на серверный язык JavaScript — Node.js.
Конкретный пример: сайт инвесторов и трейдеров Смартлаб имеет скрытое АПИ для получения просмотров статей.
Если обращение идёт через Google Apps Script внутри Гугл Таблиц, то сервер просто не отдает просмотры, возвращая пустой ответ, потому что заголовки headers и User-Agent не поддерживаются Google Apps Script:
function fetchApiResponse() { const url = 'https://smart-lab.ru/cgi-bin/gcn.fcgi?list=1083556&func=func8422&_=1731928577852'; try { // Выполняем запрос к API с детализированными заголовками const response = UrlFetchApp.fetch(url, { method: 'get', // HTTP метод GET muteHttpExceptions: true, // Не выбрасывать ошибки для HTTP ответов с кодами, отличными от 200 headers: { 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7', 'Accept-Encoding': 'gzip, deflate, br, zstd', 'Accept-Language': 'ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7', 'Cache-Control': 'max-age=0', 'Sec-CH-UA': '"Chromium";v="130", "Google Chrome";v="130", "Not?A_Brand";v="99"', 'Sec-CH-UA-Mobile': '?0', 'Sec-CH-UA-Platform': '"Windows"', 'Sec-Fetch-Dest': 'document', 'Sec-Fetch-Mode': 'navigate', 'Sec-Fetch-Site': 'none', 'Sec-Fetch-User': '?1', 'Upgrade-Insecure-Requests': '1' } }); // Проверяем HTTP код ответа const responseCode = response.getResponseCode(); if (responseCode !== 200) { console.error(`Ошибка: Получен HTTP код ответа ${responseCode}`); return; } // Получаем содержимое в виде обычного текста const content = response.getContentText(); // Логируем необработанный ответ для отладки console.log('Необработанный ответ API:', content); } catch (error) { // Обрабатываем ошибки во время выполнения запроса console.error('Ошибка при выполнении запроса к API:', error.message); } }
Если же запрос идёт через Node.js и использование User-Agent, то в ответ возвращается число просмотров даже без использования эмуляции браузера:
const axios = require('axios'); async function fetchApiResponse() { const url = 'https://smart-lab.ru/cgi-bin/gcn.fcgi?list=1083556&func=func8422&_=1731928577852'; try { // Установка заголовка User-Agent для имитации браузера Chrome const options = { headers: { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36' } }; // Выполнение запроса к API для получения просмотров const apiResponse = await axios.get(url, options); const responseText = apiResponse.data; // Логируем необработанный ответ для отладки console.log('Необработанный ответ API:', responseText); } catch (error) { // Обработка ошибок console.error(`Ошибка получения количества просмотров: ${error.message}`); return null; } } fetchApiResponse();
Проблема оценки популярности статей
Обратная связь от аудитории может сильно варьироваться в зависимости от платформы, формата подачи материала и времени публикации.
Например, статья, выложенная одновременно на разных сайтах, может получить совершенно разные результаты. Уже упоминаемая выше статья «Как я при помощи двух скриптов смог автоматически сгенерировать опись документов для 700 страниц» собрала:
vc.ru:
225 / 3 / 2 / 2
Просмотры / Комментарии / Закладки / Рейтинг
Пикабу:
74 615 / 76 / 0 / 903
Просмотры / Комментарии / Закладки / Рейтинг
Хабр:
6 620 / 7 / 31 / +12
Просмотры / Комментарии / Закладки / Рейтинг
На Пикабу статья вызвала бурное обсуждение, в то время как на vc.ru аудитория осталась почти равнодушной.
Зачем собирать статистику публикаций?
Анализ метрик (просмотры, комментарии, закладки, рейтинг) помогает понять, что действительно интересует вашу аудиторию и какие темы популярны на различных ресурсах.
-
Просмотры: показывают, сколько людей заинтересовалось темой.
-
Комментарии: демонстрируют вовлечённость, обсуждения.
-
Закладки: отражают ценность материала для долгосрочного использования.
-
Рейтинг: индикатор общего одобрения.
Анализ этих данных помогают адаптировать стиль, темы и платформы для повышения эффективности публикаций.
Создание Open Source скрипта для сбора данных
За несколько лет написал Google Apps Script, а затем и Node.js, которые предназначены для автоматического сбора показателей публикаций с различных платформ.
Важно, что скрипты приспособлены к конкретной структуре каждой платформы, используя API (Тинькофф Журнал, Пикабу, Смартлаб) или парсинг HTML-кода (Хабр, vc.ru).
Различие Google Apps Script и Node.js версий
Если очень кратко, то версия на Google Apps Script проста в использовании, запускается прямо в браузере, идеальна для быстрой интеграции с таблицами Google, а Node.js версия мощнее, работает на сервере, подходит для более сложных задач и интеграций.
Google Apps Script – это облачное решение, подходящее для задач, не требующих больших вычислительных ресурсов. Он интегрирован в Google Workspace и позволяет легко работать с веб-страницами, API Google, используя встроенные функции. Однако его функционал ограничен, и он не может работать с ресурсоёмкими задачами или сложным парсингом.
Node.js – это серверная среда, использующая Javascript. Это мощное решение для сложного парсинга, работы с API, обработки больших объёмов данных и реализации сложных логик. Node.js позволяет использовать различные библиотеки (например, Axios, Cheerio, Puppeteer), расширяя возможности скрипта. Однако Node.js требует установки и настройки на сервере или локально.
Публикация скрипта на GitHub
Публикация скриптов на GitHub в рамках философии Open Source имеет несколько преимуществ. Во-первых, это позволяет другим пользователям использовать и адаптировать скрипт под свои нужды. Во-вторых, открытый исходный код способствует прозрачности и аудиту кода, что помогает обнаруживать и исправлять ошибки. В-третьих, сообщество разработчиков может помочь в улучшении и расширении функциональности скрипта, если захочет 🙂
Пример анализа собранной статистики для выбора будущих тем
Мне кажется немного некорректно проводить анализ собственных статей здесь и поэтому я оттолкнусь от анализа двух популярных платформ: Хабра и Смартлаба по всем их публикациям за 2024 год.
Откуда вообще я взял исходные данные для анализа всей платформы?
Исходные данные были получены мной путем парсинга двух ресурсов. Использовался автоматизированный сбор данных с использованием Node.js для парсинга HTML-страниц и последующего извлечения информации о каждой статье. Данные о просмотрах, комментариях, рейтинге и закладках позволяли оценить популярность и вовлеченность аудитории.
Фильтр по минимальному количеству просмотров (5 000 на Смартлабе, 30 000 на Хабре) и рейтингу (более 30 на Хабре) позволил отфильтровать статьи, которые не соответствовали критериям популярности.
Определение трендов и предпочтений аудитории для разных платформ: Хабр и Смартлаб.
Анализ показал, что у каждой платформы свои тренды.
Хабр более ориентирован на технические темы, такие как настройка программного обеспечения, обходы блокировок, разработка и советы по программированию. Наиболее популярные темы за 2024 год на Хабре — проблемы блокировки YouTube, решение проблем с GoodbyeDPI, уязвимости безопасности.
На Смартлабе, наоборот, доминируют темы, связанные с инвестициями, экономикой и геополитикой. Трендовые темы Смартлаба — санкции, рубль, ключевая ставка, дедолларизация, анализ рынка акций и облигаций.
Оптимизация публикаций под разные платформы: про что писать и на чём делать акценты.
Для эффективной публикации на каждой платформе важно учитывать интересы ее аудитории. На Хабре следует фокусироваться на конкретных технических проблемах и их решениях, практических советах и «человеческом» стиле. Статьи с интересными заголовками, посвященные узким, конкретным темам, вероятнее всего, получат бОльшую вовлеченность.
На Смартлабе, ключевым является анализ геополитических и экономических трендов, связанных с финансами. Оптимально создавать качественный аналитический контент, предлагающий рекомендации по инвестированию, с подкреплением фактами и экспертизой.
Выводы
Мой Open Source скрипт для автоматического сбора статистики (просмотры, комментарии, закладки, рейтинг) позволяет анализировать популярность статей на разных платформах, выявлять тренды и понять что разные платформы могут требовать разного контента.
Работа с Open Source инструментом делает этот процесс масштабируемым и полезным для других авторов и агентств.
Автор: Михаил Шардин,
6 января 2025 г.
ссылка на оригинал статьи https://habr.com/ru/articles/871234/
Добавить комментарий