@nevro
не пойми кто

Как распарсить строку и построить дерево категорий товаров и услуг?

Scrapy и прочие варианты - здорово, но для самообразования и прокачки логики не годится.
К примеру, нужно распарсить строку и построить дерево категорий товаров и услуг (из прошедшего конкурса яндекса по android-разработке): https://money.yandex.ru/api/categories-list
кусок: [{"title":"Телефон","subs":[{"id":157291,"title":"Мобильная связь"},

Тут информация структурирована, а не просто массив. И так же в условии сказано про дерево. Значит,
1. сначала нужно выбрать тип данных, подходящий для хранения информации в такой структуре? Для такой структуры как в условии, лучше взять dict, или писать свой?
2. В общем виде, алгоритм выглядит как циклы прохождения по строке и проверки каждого символа на все эти скобки, двоеточия, запятые, кавычки и остальное?
3. В питоне для таких проходов и сравнений используются регулярные выражения? Только начал языком интересоваться - успел узнать только про split у строкового типа.
  • Вопрос задан
  • 2264 просмотра
Решения вопроса 1
  • orlov0562
    @orlov0562
    I'm cool!
    Я напишу в целом, т.к. это подойдет для любого языка

    Алгоритм работы парсера довольно прост, и по большей части делится на 3и этапа:
    1) Получить данные
    2) Разобрать данные
    3) Сохранить данные

    1) Для того чтобы получить данные, надо изучить стек функций для работы с сетью. Можно гуглить по такому запросу "Как скачать веб-страницу" + твой ЯП (PHP, Java, Python и т.д.). Тут ты должен написать функцию которой на вход передашь url, а на выход получишь данные (html, json, xml и т.д.)

    2) Разобрать данные можно либо с помощью готовых библиотек под нужный формат, либо с помощью регулярных выражений, либо с помощью строковых функций. Тут на помощь придет запрос "Строковые функции" + твой ЯП или "регулярные выражения" + твой ЯП. На этом этапе ты должен написать функцию, которой на вход поступают данные, а на выходе получаешь заранее утвержденную структуру.

    3) Сохранять данные в необходимой структуре можно в файлы или в БД. Опять в гугл с запросом "Работа с бд " + твой ЯП, либо "Работа с файлами" + твой ЯП. Тут твоя задача написать функцию, на вход которой приходит заранее утвержденная структура, а на выходе ты получаешь результат "сохраненные данные"

    Ну, собственно и всё. Идешь в гугл, изучаешь матчасть и пишешь парсер.

    Если же тебя в большей степени интересуют алгоритмы разбора, тогда советую посмотреть код "калькуляторов" на твоем ЯП, погуглить можно по запросу "калькулятор со скобками", "Разбор и вычисление выражений". Это классическая задача, разбор твоего куска будет очень похож.
    Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы
Вакансии с Моего Круга Все вакансии
Заказы с Фрилансим Все заказы