Парсинг станций метро Москвы
Необходимо распарсить страницу Список станций Московского метрополитена и из полученных данных получить:
Линии московского метро (получаете имя линии, номер линии, цвет парсить не надо).
Станции московского метро (получаете имя станции, номер линии).
После получения необходимой информации, необходимо создать и записывать на диск JSON-файл со списком станций по линиям и списком линий по формату JSON-файла ниже (странции, линии и тд могут отличаться от тех, что есть в файле):
{
"stations" : {
"1" : [
"Девяткино",
"Гражданский проспект",
"Академическая",
"Политехническая",
"Площадь Мужества",
"Лесная",
"Выборгская",
"Площадь Ленина",
"Чернышевская",
"Площадь Восстания",
"Владимирская",
"Пушкинская",
"Технологический институт",
"Балтийская",
"Нарвская",
"Кировский завод",
"Автово",
"Ленинский проспект",
"Проспект Ветеранов"
],
"2" : [
"Парнас",
"Проспект Просвещения",
"Озерки",
"Удельная",
"Пионерская",
"Чёрная речка",
"Петроградская",
"Горьковская",
"Невский проспект",
"Сенная площадь",
"Технологический институт",
"Фрунзенская",
"Московские ворота",
"Электросила",
"Парк Победы",
"Московская",
"Звёздная",
"Купчино"
],
"3" : [
"Беговая",
"Новокрестовская",
"Приморская",
"Василеостровская",
"Гостиный двор",
"Маяковская",
"Площадь Александра Невского",
"Елизаровская",
"Ломоносовская",
"Пролетарская",
"Обухово",
"Рыбацкое"
],
"4" : [
"Спасская",
"Достоевская",
"Лиговский проспект",
"Площадь Александра Невского",
"Новочеркасская",
"Ладожская",
"Проспект Большевиков",
"Улица Дыбенко"
],
"5" : [
"Комендантский проспект",
"Старая Деревня",
"Крестовский остров",
"Чкаловская",
"Спортивная",
"Адмиралтейская",
"Садовая",
"Звенигородская",
"Обводный канал",
"Волковская",
"Бухарестская",
"Международная"
]
},
"connections": [
[
{
"line": 2,
"station": "Невский проспект"
},
{
"line": 3,
"station": "Гостиный двор"
}
],
[
{
"line": 1,
"station": "Площадь Восстания"
},
{
"line": 3,
"station": "Маяковская"
}
],
[
{
"line": 2,
"station": "Сенная Площадь"
},
{
"line": 4,
"station": "Спасская"
},
{
"line": 5,
"station": "Садовая"
}
],
[
{
"line": 1,
"station": "Владимирская"
},
{
"line": 4,
"station": "Достоевская"
}
],
[
{
"line": 1,
"station": "Пушкинская"
},
{
"line": 5,
"station": "Звенигородская"
}
],
[
{
"line": 3,
"station": "Площадь Александра Невского"
},
{
"line": 4,
"station": "Площадь Александра Невского"
}
]
],
"lines" : [
{
"number" : 1,
"name" : "Кировско-Выборгская",
"color" : "red"
},
{
"number" : 2,
"name" : "Московско-Петроградская",
"color" : "blue"
},
{
"number" : 3,
"name" : "Невско-Василеостровская",
"color" : "green"
},
{
"number" : 4,
"name" : "Правобережная",
"color" : "orange"
},
{
"number" : 5,
"name" : "Фрунзенско-Приморская",
"color" : "violet"
}
]
}
Рекоммендации:
Для реализации функционала воспользуйтесь библиотекой
nokogiri
Last updated