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 записи.

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

Считаю метрики, делаю сквозную аналитику и когортный анализ, составляю интерактивные дешборды, моделирую юнит-экономику


Обратиться с задачей
1 комментарий
1regina 2025

Its wonderful!