Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/graythze/vkexport

📄 All photos, wall, friends and other data from VK page in JSON file
https://github.com/graythze/vkexport

exporter parser vk vk-api vkontakte vkontakte-api

Last synced: 15 days ago
JSON representation

📄 All photos, wall, friends and other data from VK page in JSON file

Awesome Lists containing this project

README

        


VKExport 📄

[RUS](#-что-это) // [ENG](#-what-is-it)


RUS

# 📄 Что это?

VKExport позволяет экспортировать данные в файл JSON с личной страницы ВК или другого человека.

## ✅ Экспорт доступен для
* Данных профиля [users.get](https://vk.com/dev/users.get)
* Документов [docs.get](https://vk.com/dev/docs.get)
* Друзей [friends.get](https://vk.com/dev/friends.get)
* Подарков [gifts.get](https://vk.com/dev/gifts.get)
* Заметок [notes.get](https://vk.com/dev/notes.get) с комментариями [notes.getComments](https://vk.com/dev/notes.getComments)
* Фотографий [photos.get](https://vk.com/dev/photos.get) с комментариями [photos.getAllComments](https://vk.com/dev/photos.getAllComments)
* Историй [stories.get](https://vk.com/dev/stories.get)
* Видео [video.get](https://vk.com/dev/video.get) с комментариями [video.getComments](https://vk.com/dev/video.getComments)
* Подписчиков [users.getFollowers](https://vk.com/dev/users.getFollowers)
* Групп и публичных страниц [groups.get](https://vk.com/dev/groups.get)
* Маркета (магазина) [market.get](https://vk.com/dev/market.get)
* Постов на стене [wall.get](https://vk.com/dev/wall.get) с комментариями [wall.getComments](https://vk.com/dev/wall.getComments)
* Сообщений [messages.getById](https://vk.com/dev/messages.getById)

## ⚙️ Использование
1) Скачайте скрипт
2) Установите пакеты, используя команду `pip install -r requirements.txt`
3) Запустите скрипт, используя команду `python collector.py VK_TOKEN durov -api 5.82 -c wall,photos,notes -sf -v `

Команда `python collector.py -h` показана ниже

```
usage: collector.py [-h] [-c CUSTOM | -b | -e | -f] [-a API] [-sf] [-v]
token id

usage: collector.py VK_TOKEN durov -api 5.82 -c wall,photos,notes -sf -v

positional arguments:
token VK API token
id Page ID or user domain

options:
-h, --help show this help message and exit
-c CUSTOM, --custom CUSTOM
Parse custom methods
-b, --base Parse basic info
-e, --extra Parse basic + extra info
-f, --full Parse full info
-a API, --api API API version
-sf, --singlefile Save result in single file
-v, --verbose Increase output verbosity
```

### 📍 Аргументы
`token` - Токен VK API

`id` — идентификатор или домен страницы (например, `1`, `id1` или `durov`)

`-a, --apiver` — версия API VK, например `5.82`. Default: `5.82`

`-sf, --singlefile` - Сохранение результата в одном файле. По умолчанию, каждый метод сохраняется в отдельный файл

`-b, --base` — Базовый уровень парсера. Парсинг всех методов, кроме [messages.getById](https://vk.com/dev/messages.getById) и [users.getFollowers](https://vk.com/dev/users.getFollowers)

`-e, --extra ` — Средний уровень парсера. Парсинг всех методов, кроме [messages.getById](https://vk.com/dev/messages.getById)

`-f, --full` — Полный уровень парсера. Парсинг всех представленных методов

`-v, --verbose` — Показать подробности

`-c, --custom` — Выбрать собственные методы. Например, при `photos,wall` будет использован парсинг только [photos.get](https://vk.com/dev/photos.get) и [wall.get](https://vk.com/dev/wall.get)

## 🔌 Получение API токена

### ⚡ Использование готовых решений
Сервис [*vkhost.github.io*](https://vkhost.github.io/) позволяет в автоматическом режиме собрать URL и получить токен
1) Откройте [*vkhost.github.io*](https://vkhost.github.io/)
2) Выберите приложение. Например, можно выбрать Kate Mobile или VFeed
3) Нажмите на выбранное приложение
4) Нажмите на "Продолжить как" или "Разрешить"
5) Скопируйте часть URL начиная с `access_token= ` и заканчивая `&expires_in`
6) Вставьте токен в скрипт

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


⚠️⚠️⚠️

После использования скрипта, **в целях безпопасности КРАЙНЕ рекомендуется удалить API токен**. Это можно сделать двумя способами: [отозвать права на используемое приложения для токена](https://vk.com/settings?act=apps), либо [сменить пароль](https://id.vk.com/account/#/security)

### 💪 Собственная сборка URL
Получить ключ доступа пользователя можно одним из этих способов:

- [*Implicit Flow*](https://dev.vk.com/ru/api/access-token/implicit-flow-user): для работы с API от имени пользователя в Javascript-приложениях и Standalone-клиентах (десктопных или мобильных).

- [*Authorization Code Flow*](https://dev.vk.com/ru/api/access-token/authcode-flow-user): для работы с API от имени пользователя с серверной стороны вашего сайта.

Дополнительную информацию можно найти в [*Общих сведениях*](https://dev.vk.com/ru/api/access-token/getting-started)

## ПРИМЕЧАНИЕ: Если JSON файл слишком большой, есть вероятность получить ошибку MemoryError. Чтобы исправить это, [установите x64 версию Python ](https://www.python.org/downloads/)


ENG

## 📄 What is it?
VKExport allows you to export data in JSON file from personal or other VK pages

## Export available for
* Profile data [users.get](https://vk.com/dev/users.get)
* Documents [docs.get](https://vk.com/dev/docs.get)
* Friends [friends.get](https://vk.com/dev/friends.get)
* Gifts [gifts.get](https://vk.com/dev/gifts.get)
* Notes [notes.get](https://vk.com/dev/notes.get) with comments [notes.getComments](https://vk.com/dev/notes.getComments)
* Photos [photos.get](https://vk.com/dev/photos.get) with comments [photos.getAllComments](https://vk.com/dev/photos.getAllComments)
* Stories [stories.get](https://vk.com/dev/stories.get)
* Videos [video.get](https://vk.com/dev/video.get) with comments [video.getComments](https://vk.com/dev/video.getComments)
* Followers [users.getFollowers](https://vk.com/dev/users.getFollowers)
* Groups, public pages [groups.get](https://vk.com/dev/groups.get)
* Market items [market.get](https://vk.com/dev/market.get)
* Wall posts [wall.get](https://vk.com/dev/wall.get) with comments [wall.getComments](https://vk.com/dev/wall.getComments)
* Messages [messages.getById](https://vk.com/dev/messages.getById)

## ⚙️ Usage
1) Download script
2) Install packages using `pip install -r requirements.txt`
3) Run script using `python collector.py VK_TOKEN durov -api 5.82 -c wall,photos,notes -sf -v `

The command `python collector.py -h` is shown below
```
usage: collector.py [-h] [-c CUSTOM | -b | -e | -f] [-a API] [-sf] [-v]
token id

usage: collector.py VK_TOKEN durov -api 5.82 -c wall,photos,notes -sf -v

positional arguments:
token VK API token
id Page ID or user domain

options:
-h, --help show this help message and exit
-c CUSTOM, --custom CUSTOM
Parse custom methods
-b, --base Parse basic info
-e, --extra Parse basic + extra info
-f, --full Parse full info
-a API, --api API API version
-sf, --singlefile Save result in single file
-v, --verbose Increase output verbosity
```

### 📍 Arguments
`token` - VK API Token

`id` - ID or Page domain (e.g. `1`, `id1` or `durov`)

`api APIVER, --apiver APIVER` - VK API Version, eg `5.82`

`-sf, --singlefile ` - Save result in single file. Each file for method by default.

`-m [{1,2,3}], --mode [{1,2,3}]` - Parser complexity. `1` parses all except messages and followers, `2` parses all except messages, `3` parses all methods

`-b, --base` — Base parser complexity, instead [messages.getById](https://vk.com/dev/messages.getById) and [users.getFollowers](https://vk.com/dev/users.getFollowers)

`-e, --extra ` — Extra parser complexity, instead [messages.getById](https://vk.com/dev/messages.getById)

`-f, --full` — Full parser complexity. Parsing all methods

`-v, --verbose` — Показать подробности

`-v, --verbose` - Increase output verbosity

`-c, --custom` - Set custom methods, e.g. `photos,wall` will parse [photos.get](https://vk.com/dev/photos.get) and [wall.get](https://vk.com/dev/wall.get)

## 🔌 Getting VK API token

### ⚡ Third party services
Service [*vkhost.github.io*](https://vkhost.github.io/) helps automatically bulid URL and get token
1) Visit [vkhost.github.io](https://vkhost.github.io/)
2) Choose app. It's better to use token from Kate Mobile or VFeed apps
3) Click on app
4) Click on "Continue as" or "Allow"
5) Copy part of URL from `access_token= `to `&expires_in`
6) Paste token to CLI

You can use other apps or services to get token.


⚠️⚠️⚠️

After using the script **for security reasons, it is HIGHLY recommended to remove the API token**. It is possible to do in two ways: [*revoke app authorization which was used to obtain token*](https://vk.com/settings?act=apps), or [*change the password*](https://id.vk.com/account/#/security)

### 💪 Self-building URL

To get api token you can use one of them ways:

- [*Implicit Flow*](https://dev.vk.com/en/api/access-token/implicit-flow-user): to work with API on behalf of the user in Javascript applications and Standalone clients (desktop or mobile).

- [*Authorization Code Flow*](https://dev.vk.com/en/api/access-token/authcode-flow-user): to work with API on behalf of the user from the server side of your site.

You can find extra information at [*General information*](https://dev.vk.com/en/api/access-token/getting-started)

## NOTE: If result JSON file is too large, you can get MemoryError error. To avoid it, [install x64 Python version](https://www.python.org/downloads/)