Тестовое задание
Пример команды запуска скрипта: ruby scraper.rb https://www.petsonic.com/snacks-huesos-para-perros/ test.csv
Условие задачи http://www.petsonic.com/es/perros/snacks-y-huesos-perro По урлу находится категория веб сайта, который занимается продажей товаров для животных. Нужно собрать все товары из категории и записать в csv файл.
По каждому товару нужно собрать а) название б) цену в) изображение
вот пример страниц товара http://www.petsonic.com/es/perros/snacks-y-huesos-perro/galletas-granja-para-perro такую страницу мы называем страницей мультипродукта. Это означает, что на одной странице находится информация о нескольких разновидностях продукта. В данном случае разная весовка : 200 gr, 430 gr, 4 kg.
С этой страницы в выходной файл должно быть добавлено 3 записи: 1) В названии: Galletas Granja para Perro - 200 gr в цене: 1.35 в изображении: http://www.petsonic.com/5830-large_default/galletas-granja-para-perro.jpg
2), …. по шаблону
Обрати внимание на: а) название сформировано, как общее название продукта Galletas Granja para Perro плюс весовка из таблицы 200gr б) если у продуктов нет вариаций, то и весовка будет оказана только одна. В таком случае с одной страницы продукта получится одна запись в файле. в) список продуктов категории разбит на несколько страниц
Как всё должно быть оформлено
Должна быть написана программа/скрипт на Ruby. Программа на вход получает 1) ссылку (ссылка на страницу категории) 2) имя файла в который будет записан результат Скрипт отрабатывает и результаты записывает в выходной файл с заданными именем. В тестовом задании нужно использовать xpath для получения содержимого html элементов, таких как цена, название и т.п. Возможно, понадобится использовать regexp для того чтобы достать отдельные части данных, если xpath недостаточно. Для скачивания страниц нужно использовать open-uri или curb (очень желательно), для парсинга страниц nokogiri, для записи в csv файл – модуль csv. Вместе с решением нужно прислать пример запуска скрипта. Если в скрипте используются сторонние gem-ы, то приложить gemfile. Скрипт должен работать достаточно быстро и при этом не привлекать к себе внимание администраторов сайта.