Google Таблицы > Node.js > Google Charts > Сайт-визитка > Топ-3 место в поиске ФИО + специализация
На основании данных таблицы я решил дополнить сайт-визитку, сведениями о публикациях, которые бы генерировались автоматически. Что я хотел получить:
- Актуальную сводку публикаций, расположенную на временной шкале Google Charts.
- Автоматическую генерацию выходных данных и ссылок на статьи из гугл таблицы в html версию визитки.
- PDF версии статей со всех сайтов, из-за опасений закрытия некоторых старых сайтов в будущем.
Как получилось можно посмотреть здесь. Реализовано на платформе Node.js с использованием Bootstrap, Google Charts и Google Таблицы для хранения исходных данных.
Исходные данные о публикациях в Google Spreadsheet
Гугл-таблица LynxReport: учёт публикаций содержит все исходные данные и аналитику по публикациям. Я поддерживаю актуальность сведений на вкладке «Данные», вручную вписывая новые ссылки на статьи, остальное скачивается по большей части автоматически.
Часть таблицы LynxReport: учёт публикаций с исходными данными
Актуальные данные по просмотрам и комментариям подгружаются через формулы.
Например, чтобы получить количество просмотров со страниц Хабра в ячейке гугл таблиц используется формула:
=IF(
ISNUMBER(IMPORTXML(D6, "//*[@class='post-stats__views-count']"))
,
SUBSTITUTE(
IMPORTXML(D6, "//*[@class='post-stats__views-count']")
,",",".")
,
value(SUBSTITUTE(SUBSTITUTE(
IMPORTXML(D6, "//*[@class='post-stats__views-count']")
,"k","")
,",","."))*1000
)
Формулы это не самый быстрый вариант и для того, чтобы получить несколько сотен позиций приходится ждать около получаса. После окончания загрузки можно видеть все цифры как на скриншоте ниже. Они дают ответы какие темы популярны, а какие нет.
Часть таблицы LynxReport: учёт публикаций с аналитикой
Считывание данных из Таблицы и преобразование в формат Google Charts
Чтобы трансформировать эти сводные данные из гугл таблицы в сайт-визитку мне надо было преобразовать данные в формат временной шкалы Google Charts.
Получившаяся временная шкала Google Charts на сайте-визитке
Для того, чтобы корректно отрисовать такой график данные должны быть организованы следующим образом:
Данные для Google Charts на сайте-визитке в html виде
Чтобы выполнять все преобразования автоматически я написал под Node.js скрипт, который доступен на GitHub.
Если вы не знакомы с Node.js, то в своей предыдущей статье я подробно расписал как можно воспользоваться скриптом под разными системами:
- Windows
- macOS
- Linux
Ссылка с инструкциями здесь. Принцип аналогичен.
Работа скрипта по преобразованию в нужный формат данных и генерации pdf версий статей с сайтов (все строки обрабатываются мгновенно — я специально поставил задержку, чтобы записать это видео)
Для того считывать данные из гугл таблицы в автоматическом режиме я пользуюсь авторизацией по ключу.
Получить этот ключ можно в консоли управления проектами гугла:
Учетные данные в Google Cloud Platform
После завершения работы скрипта должны сгенерироваться два текстовых файла с html данными графиков и все pdf копии онлайн статей.
Данные из текстовых файлов я импортирую в html код сайта-визитки.
Генерация pdf копий статей с сайтов
При помощи Puppeteer сохраняю текущий вид статей вместе со всеми комментариями в pdf виде.
Если не ставить задержку, то несколько десятков статей по списку можно сохранить в виде pdf файлов всего за несколько минут.
А задержка нужна для того чтобы на некоторых сайтах (например на Т—Ж) успели подгрузиться комментарии.
Результаты
Поскольку написание скрипта затевалось с целью большего соответствия поисковым алгоритмам, то оценить результаты можно воспользовавшись поиском.
Поиск по имени и фамилии + указание специализации в обоих случаях возвращает ссылки на мои статьи и даже сайт-визитку:
В выдаче Яндекса:
В выдаче Гугла:
Пока что не могу решить — стоит ли регистрировать отдельное доменное имя, если визитка empenoso.github.io и так находится на верхних строчках поиска?
Вместо заключения
- Возможно, эта статья заставит кого-то задуматься о том, как он выглядит в интернете.
- Возможно, эта статья поможет кому-то наладить учёт и организацию публикаций.
- Исходный код скрипта расположен на GitHub.
Автор: Михаил Шардин
17 августа 2020 г.
remzalp
Стоит как минимум регистрировать домен на себя, чтобы в случае неправильного поведения сервиса (стал притеснять, упал, сменился владелец и правила) просто взять и поднять у другого сервиса. При этом раскрученное доменное имя все еще с вами и оно не изменилось.
empenoso Автор
Спасибо!