Chaika RZD Scraper — это инструмент для получения информации о железнодорожных маршрутах, составах поездов и станциях на основе данных, предоставляемых РЖД через их API.
Проект использует gRPC для обмена данными и предоставляет API для следующих функций:
- Получение маршрутов поездов.
- Получение информации о вагонах поезда.
- Поиск станций по части названия.
- Go 1.18 или выше.
-
Склонируйте репозиторий:
git clone https://github.com/Chaika-Team/ChaikaRzdScraper.git cd rzd-scraper -
Установите зависимости:
go mod tidy
-
Настройте конфигурационный файл
config.ymlдля подключения к API РЖД. Пример конфигурации:RZD: LANGUAGE: "ru" BASE_PATH: "https://pass.rzd.ru/" USER_AGENT: "Mozilla/5.0 (compatible; RzdClient/1.0)" TIMEOUT: 2000 MAX_RETRIES: 10 RID_LIFETIME: 300000 PROXY: "" GRPC: PORT: "50051"
-
Запустите сервер gRPC:
go run cmd/rzd-scraper/main.go
После запуска сервера можно делать запросы к его gRPC API.
Запрос для получения маршрутов поездов между станциями с кодами 2004000 и 2000000:
// Пример запроса для получения маршрутов поездов
service.RzdService.GetTrainRoutes({
FromCode: 2004000,
ToCode: 2000000,
Direction: 0, // OneWay
TrainType: 1, // AllTrains
CheckSeats: false,
FromDate: "2025-04-14",
WithChange: false
});Запрос для получения информации о вагонах для поезда с номером 119А:
// Пример запроса для получения информации о вагонах
service.RzdService.GetTrainCarriages({
TrainNumber: "119А",
Direction: 0, // OneWay
FromCode: 2004000,
FromTime: "2025-04-14T10:00:00",
ToCode: 2000000
});Запрос для поиска станций, содержащих строку "ЧЕБ":
// Пример запроса для поиска станций
service.RzdService.SearchStation({
Query: "ЧЕБ",
CompactMode: true,
Lang: "ru"
});В проекте предусмотрены e2e тесты для проверки функциональности API. Для запуска тестов выполните следующую команду:
go test ./...Этот проект распространяется под лицензией GPL-3.0.
- Email: chaika.contact@yandex.ru