Pull to refresh

Comments 7

photo.append(len(post['attachments']))

В attachments могут быть не только фотографии. Там вообще все аттачи к посту: фото, видео, аудио и тд.

Неплохо, остается визуализировать и проанализировать)

Непонятно зачем было использовать python, если в Google Spreadsheets есть встроенный Apps Script. При его использовании:

  1. Не нужно выполнять аутентификацию на сервисах Google для доступа к Spreadsheet;

  2. Не потребуется отдельный сервер;

  3. Запуск выполнения может выполняться автоматически таймером;

  4. Не нужны дополнительные библиотеки.

Разработка проводится на js.

Так как у меня аналогичные скрипты, то отвечу за себя

  1. Никакой проблемы в аутентификации нет .

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

  3. Предположу, что в рамках задачи сбор по таймеру не требовался, а если бы даже сбор скажем раз в месяц, то опять же можно и по будильнику скрипты запустить, если не хочется разбираться с тем, что не особо доставляет проблем. Если нужен таймер, то смотрим в сторону Serveless в Яндекс.Облаке (облачные функции, триггер по времени)

  4. В чем проблема дополнительных библиотек?

  5. Зачем разбираться как работает  Apps Script , какие там ограничения, да еще и js нужен ? Временные затраты на изучение не соизмеримы с тем эффектом, который можно получить (при условии его наличия)

  6. С учетом ограничений самих таблиц бывает недостаточно размера таблиц и приходится считать сводные таблицы в питоне, а потом уже записывать их в Google Sheets для конечного заказчика . Скорость работы с таблицами в питоне через pandas будет гораздо быстрее скорости работы Apps Script

Ваша рекомендация в сторону Apps Script не предлагает решение конкретных проблем, возникших у автора в статье, так как их особо и не было, а то что вы привели списком - не проблемы.

У меня не возникло трудностей при написание кода. Ваше предложение может быть и решила мою задачу, не погружен в Apps Script. Однако дополнительно разбираться в js затратное мероприятия по времени.

df['date']= [datetime.fromtimestamp(df['date'][i]) for i in range(len(df['date']))]

Вот тут проще и наверное быстрее df['date'] = pd.to_datetime(df['date'], unit='s') https://pandas.pydata.org/docs/reference/api/pandas.to_datetime.html

В методе API VK wall.get параметр 'count' можно до 100 установить (сейчас у вас 10).

Если захочется ускорять этот процесс - смотрите в сторону VK Exexute , если еще ускорять, то через несколько токенов от пользователей (если нужна расширенная статистика, то нужно всех будет добавить в админы), если еще ускорять, то собирать асинхронно (для себя открыл import grequests и сбор обычной статистики постов в группах с 10к-15к постов занимает 5 секунд).

Скорость сбора расширенной статистики удалось разогнать до 700 постов в секунду (через vk execute) при условии большого сбора постов. Вынес часть наработок в итоге в пользовательский интерфейс c графиками - https://hitalama-aea54.web.app/

Sign up to leave a comment.

Articles