Skip to content

сбор адресов всех домов Москвы с портала mosopen

Notifications You must be signed in to change notification settings

trosck/mosopen-parser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mosopen-parser

Сбор и геокодирование адресов всех домов с портала mosopen

Навигация

Установка зависимостей

npm i

или

yarn

Общая информация

доступные скрипты:

  • parse - сбор адресов
  • aggregate - агрегация в список
  • geocode - геокодирование(алиас на geocode:dadata)
    • geocode:dadata - использование сервиса dadata
    • geocode:geoconcept - использование сервиса geoconcept
  • all - последовательный запуск parse, aggregate и geocode

все шаги(parse, aggregate, geocode) запускаются последовательно, с помощью
npm run all можно запустить сразу все. предварительно запустив Chrome в дебаг
режиме. Подробнее тут.

Сбор адресов

в директории src/tasks находятся задачи на парсинг, запускать можно последовательно и передавать результат с прошлого шага в следующую задачу как сделано в src/index.ts.
собрать регионы -> собрать улицы региона -> собрать дома на этих улицах

команда для парсинга всех адресов:

npm run parse

результат записывается в addresses.json со следующим форматом:

[
  {
    "full_name": "Полное название района",
    "link": "Ссылка района на портале",
    "name": "Сокращенное название района",
    "code": "Код района на портале(транслит сокращенного названия)",
    "streets": [
      {
        "id": "Уникальный ID улицы на портале",
        "link": "Ссылка улицы на портале",
        "name": "Название улицы",
        "houses": [
          {
            "full_name": "Адрес с улицей и номером дома",
            "link": "Ссылка дома на портале",
            "name": "Номер дома"
          }
        ]
      }
    ]
  }
]

Аггрегация

данные берутся из addresses.json и помещаются в addresses_list.json
команда для аггрегации адресов(только после сбора адресов):

npm run aggregate

на выходе будут данные следующего формата:
Название города(Москва), название улицы, номер дома

[
  "Москва, Проспект 60-летия Октября, дом 3, строение 1",
  "Москва, Проспект 60-летия Октября, дом 23, корпус 1",
  "Москва, Большая Черёмушкинская улица, дом 22",
  "Москва, Большая Черёмушкинская улица, дом 25 А, строение 7"
]

Геокодирование

на данный момент поддерживаются два геокодера, dadata и geoconcept.
список адресов берется из addresses_list.json и адреса с координатами записываются в addresses_with_geo.json

для работы геокодера нужен запущенный Chrome в режиме дебага, CDP URL
необходимо передать в переменной cdp_url либо через файл .env,
либо через аргумент cdp_url (--cdp_url=ws://...)

geoconcept

npm run geocode:geoconcept

dadata

npm run geocode:dadata

или(dadata)

npm run geocode

About

сбор адресов всех домов Москвы с портала mosopen

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published