👨🏼‍💻Перекладываю 📊 в 🌲🇫🇮
694 subscribers
226 photos
7 videos
52 links
DA + DE = AE? @ little🇫🇮startup,
Ex Product Data Analyst @ SkyEng,
Ex Data Engineer @ Starship (delivery robots),
Ex Data Analyst @ EPAM,
Я НЕ РАЗМЕЩАЮ РЕКЛАМУ,
Личка открыта https://t.me/jarikor ,
(надо нормальное название каналу придумать)
Download Telegram
Обзорная стата по годам и активностям
Паблик ведёт деятельность непрерывно и активно с 2017 года.

В паблике 148 843 подписчиков на данный момент, и около 7 тысяч постов.
🔥И что интересно — посмотрите на график лайков и репостов. Они совпадают. Логично, пост выложили, набежали, полайкали, и отрепостили сразу.

А вот комменты...

Смотрите, пик комментов не совпадает с пиками лайков и репостов.

Либо по вторникам публикуют посты, которые заточены под механику комментирования. Очень хочется подумать, что по вторникам народ пробивает на "по-болтать". Но причина скорее всего скучная и рациональная.

Можно разложить посты по дням и по годам, посмотреть, сохраняется ли такой же тренд каждый год, или это последние два года так повлияли (т.к. паблик за последние два года вырос с 50 тыс до 150 тыс подписчиков. На сотку. Или даже больше).
Новая модификация скрипта — теперь он может собирать любое количество пабликов, заданное в константе. Пока это просто короткий скрипт, в функцию не завёрнут, но уже работает исправно.

Также добавил сбор from_id, чтобы можно было сортировать посты на "опубликованные от имени паблика" и "опубликованные в паблике, но с указанием авторства", чтобы можно было собрать статистику по авторам контента.

И, например, определить самых активных, или самых залайканых (хороших) авторов.

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

И вообще портянка.
Стало — теперь можно управлять запрашиваемыми данными через константу ARGUM_LIST (для наглядности скриншота внёс её в комментарии), получать именно то, что нам нужно и исключать то, что не нужно.

Да, исключения ещё не прописал, я их в следующей итерации улучшений пропишу.
Возможно стоит реализовать так (вариант через селектор сильно залайканый на SoF, но предлагается скорее как упрощение читабельности dict compr, а не "только так а не иначе")
НЕ ЗНАЮ как это получилось, но парсер вытащил то, что не должен был вытащить 😂

Я вытащил пост, который создан РАНЬШЕ самого раннего поста (на текущий момент) в паблике.

При этом настройка 'owner' стоит. Т.е. АПИ должен отдавать только опубликованные на стене в настоящий момент.

Магия блять. Переписал на компрехеншены блять.
Во. Он почему-то вернул мне пост, который лежит по параметру 'others'

Херрасе глюк.
Старая версия скрипта собирает нормально, без этого "левого" поста, но почему-то не цепляет текст от последнего поста (а он там есть)

Блять, чо началось-то, нормально же всё было.
Блять, ВК АПИ чтоль глючит????
Теперь вместо 181 поста, мне вообще вернула функция 9. Именно не функция распарсинга, а функция СБОРА всех постов с ВК.

А я её ВООБЩЕ НЕ МЕНЯЛ.
БЛять магия не иначе.

Дебажу дальше.
Функция которая достаёт все посты, возвращает объект (список постов), на этот объект ссылается переменная all_posts.

В следующей инструкции, я циклом разбираю этот объект-список на отдельные объекты-посты.

И тут, ВНЕЗАПНО, последний элемент списка становится другим. И даже не один, а последние ДВА поста становятся другими.

КАК ЭТО ВОЗМОЖНО?
Если других запросов я не делал к серверу. Откуда эти другие данные подсосались???
Короче, щас буду руками каждый пост в выдаче отсматривать. Возможно в изначальной выдаче "левый" пост тоже есть, но не последний в очереди, а где-то в середину прилетает.

Ночью уже сил не было перебирать руками, глаза долбились.
Я хз. Видимо и правда API тупил.
Все посты сегодня собираются нормально, и на больших и на малых объёмах.

Никаких левых постов, никаких левых None данных вместо значений. Всё отсмотрел и перепроверил.

Всё работает как должно.

Ну и хрен с ними, жаль только зря только время потерял.
Итак, парсер превращается...
В генератор аналитических отчётов.


Первый скрипт генерирует отчёт в Экселе на 5 листах:
1) Данные по всем постам в паблике (имеет смысл сделать "по всем постам за заданный интервал времени", чтоб не жрать память открывающего отчёт компа)
2) Сводные данные по паблику за заданный интервал времени (просто суммы и средние значения)
3) Сводные данные по неделям за отчётный год (или сколько от него прошло)
4) Сводные данные по месяцам за отчётный год (или сколько от него прошло)

Пока готовы только две страницы, остальное в процессе.

Второй скрипт — генерирует отчёт в ПаверПоинте, со сводными данными (как на второй странице эксельки). Пока не красивый отчёт, должен быть в будущем с оформлением и ваще.
По-упражняемся хорошенько в Пандас.
В прикладных и полезных для анализа функциях.