
Security News
pnpm 10.12 Introduces Global Virtual Store and Expanded Version Catalogs
pnpm 10.12.1 introduces a global virtual store for faster installs and new options for managing dependencies with version catalogs.
Модульный парсер данных из социальной сети ВКонтакте.
vk_parser/
├── __init__.py
├── api/
│ ├── __init__.py
│ └── vk_client.py # Клиент для работы с API ВКонтакте
├── config/
│ ├── __init__.py
│ └── settings.py # Конфигурация и настройки
├── models/
│ ├── __init__.py
│ └── user.py # Модели данных пользователей
├── utils/
│ ├── __init__.py
│ ├── logging_setup.py # Настройка логирования
│ ├── state_manager.py # Управление состоянием
│ ├── clean_logs.py # Скрипт очистки старых логов
│ └── storage.py # Утилиты для хранения данных
├── collector.py # Основной класс сборщика данных
└── main.py # Точка входа в приложение
pip install vk-parser
git clone <repo-url>
cd vk-parser
pip install -e .
cp config.ini.example config.ini
config.ini
, добавив свои данные доступа к API.После установки пакета вы можете запустить парсер через командную строку:
vk-parser --config path/to/config.ini
С указанием пути к файлу конфигурации:
vk-parser --config path/to/config.ini
Включение режима отладки:
vk-parser --debug
Вы также можете использовать VK Parser как библиотеку в своих проектах:
import asyncio
from vk_parser.main import run_parser
async def main():
# Запуск парсера с указанием параметров
await run_parser(
config_path="config.ini",
resume=True,
debug=True
)
if __name__ == "__main__":
asyncio.run(main())
Для более сложных сценариев вы можете использовать отдельные компоненты:
from vk_parser.config.settings import load_config
from vk_parser.collector import VKDataCollector
async def custom_collection():
config = load_config("config.ini")
# Можно программно изменить настройки
config.load_communities = True # Включение загрузки сообществ
# Задать сообщества для сбора подписчиков
config.communities_ids = ["123456", "789012"]
config.max_community_members = 5000 # Ограничение количества подписчиков
collector = VKDataCollector(config)
# Запуск сборщика
await collector.run()
# Или использование отдельных методов
# await collector.collect_friends("user_id")
# await collector.collect_community_members("community_id")
Парсер имеет продвинутую систему логирования:
logs/
с датой в имени файлаУказание пути сохранения логов:
python -m vk_parser.main --log-dir custom/logs/path
Указание имени файла логов:
python -m vk_parser.main --log custom_name.log
Для поддержания чистоты и экономии дискового пространства вы можете использовать скрипт очистки логов:
python -m vk_parser.utils.clean_logs --days 30
Где 30 - количество дней, после которых лог-файлы будут удалены.
Дополнительные опции:
python -m vk_parser.utils.clean_logs --log-dir path/to/logs --recursive --dry-run
--log-dir
(-d
) - директория с логами--days
(-n
) - удалять файлы старше N дней--recursive
(-r
) - рекурсивный поиск в поддиректориях--dry-run
- только показать, что будет удалено (без фактического удаления)Парсер автоматически сохраняет состояние сбора данных каждые 10 секунд и при завершении. Для возобновления сбора данных используйте опцию --resume
:
python -m vk_parser.main --resume
Вы также можете указать путь к файлу состояния:
python -m vk_parser.main --resume --state-file custom_state.json
Для очистки сохраненного состояния и начала сбора сначала:
python -m vk_parser.main --clear
Все настройки доступны в файле config.ini
:
access_token
- токен доступа к API ВКонтактеstart_user_id
- ID пользователя для начала сбора данных (опционально, если указаны communities_ids)max_depth
- максимальная глубина обхода (по умолчанию 5)max_users
- максимальное количество пользователей для сбора (по умолчанию 20000)batch_size
- размер батча для запросов (по умолчанию 25)request_delay
- задержка между запросами в секундах (по умолчанию 0.35)save_interval
- интервал сохранения данных (по умолчанию 5000 пользователей)load_communities
- флаг, определяющий необходимость загрузки сообществ пользователей (по умолчанию false)communities_ids
- список ID сообществ через запятую для сбора подписчиков (опционально, если указан start_user_id)max_community_members
- максимальное количество подписчиков, собираемых из каждого сообщества (по умолчанию 10000)Важно: В конфигурации должен быть указан хотя бы один источник данных: либо start_user_id
для сбора по графу друзей, либо communities_ids
для сбора из сообществ, либо оба параметра одновременно.
Парсер обрабатывает сигналы завершения и корректно сохраняет текущее состояние. При возобновлении сбора, парсер:
На сбор 40 тыс. пользователей ушло 22ч. 21.05.2025 в 21.00 стартанули
Каждый пользователь представлен в формате JSON и содержит следующие поля:
posts
- массив последних постов пользователяcommunities
- массив сообществ, в которых состоит пользовательsource_community
- ID сообщества, из которого был получен пользователь (присутствует только для пользователей, собранных из списка подписчиков сообществ)Пример структуры данных сообщества:
{
"id": 12345678,
"name": "Название сообщества",
"screen_name": "group_name",
"is_closed": 0,
"type": "group",
"members_count": 5000,
"description": "Описание сообщества"
}
FAQs
Модульный парсер данных пользователей из социальной сети ВКонтакте
We found that vk-parser demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
pnpm 10.12.1 introduces a global virtual store for faster installs and new options for managing dependencies with version catalogs.
Security News
Amaro 1.0 lays the groundwork for stable TypeScript support in Node.js, bringing official .ts loading closer to reality.
Research
A deceptive PyPI package posing as an Instagram growth tool collects user credentials and sends them to third-party bot services.