Написать программу (ПК, Win) парсинга и фильтрации товаров е-магазинов
Эскиз ТЗ:
Если какую-то из опций вы считаете реализовать невозможно или проще реализовать другим образом, не стесняйтесь сообщить об этом.
Программа должна работать локально на компьютере пользователя (Windows 64/32 10, 8, 7, XP)
Программа должна использовать либо свой встроенный браузер, либо один из уже установленных на компьютере (меню Настройки/Выбор браузера).
Т.е. для пользователя данная программа является альтернативным браузером с возможностью фильтрации содержимого просматриваемой страницы. Реализовывать это через Дополнение/Расширение/Плагин к популярным браузерам не хотелось бы, т.к. новая версия браузера может потерять совместимость с Дополнением.
В адресной строке пользователь вводит адрес интересующей его торговой площадки или
кликает по ссылке в меню “Магазины” и попадает на главную страницу, где может произвести доступные настройки (валюта, страна доставки) и/или перейти в определенный раздел сайта (одежда, запчасти...)
В строке поиска на сайте торговой площадки пользователь указывает слова поиска и запускает поиск.
Получив ответ программа автоматически парсит полученные страницы,
производит сортировку в соответствии с настройками фильтров выбранных пользователем
и показывает пользователю только товары удовлетворяющие фильтрам.
При парсинге многостраничной выдачи программа не должна занимать значительную часть памяти ПК открывая все страницы выдачи одновременно (т.е. программа открывает одну (или для ускорения несколько, но не все сразу) страницы выдачи, забирает инфу, закрывает, открывает следующие).
Фильтры (плавающая панель с треугольником “свернуть”):
Расширяемое вертикально Поле “Исключить слова”- исключить из выдачи товары в описании которых есть указанные слова.
Расширяемое вертикально Поле “Обязательные слова”- исключить из выдачи товары в описании которых отсутствуют указанные слова.
Чекбокс “сортировать по мин. цене” (минимальная цена выше в списке)
Чекбокс “сортировать по макс. цене” (если в карточке товара много опций, за цену для фильтра принимается максимальная)(минимальная цена выше в списке)
Чекбокс “сортировать по цене включая доставку”(минимальная цена выше в списке) цену доставки брать со страницы товара.
Чекбокс “сортировать по цене за 1шт если в лоте много” (добавляет в адрес выдачи &isUnitPrice=y )(минимальная цена выше в списке)
Поля “кол-во товара от X и до Y” (добавляет в адрес выдачи &minQuantity=X&maxQuantity=Y)
Поля “цена товара от X и до Y выключая доставку”
Поле кол-во предложений отфильтрованной выдачи на страницу
Поле максимальное кол-во страниц парсинга
Кнопка выбора формата отфильтрованной выдачи “List/Gallery”
Меню “магазины”:
Список магазинов с которыми программа работает (со ссылкой на главную страницу магазина)
Aliexpress, e-bay(все), amazon(все).
Меню “Настройки”
Выбор браузера
Браузер представляется как ... выбор из популярных браузеров +поле ввода названия агента.
Кнопка “Поблагодарить авторов” - ссылка ведущая на сайт.
Программа должна работать как в полноэкранном режиме так и в оконном.
Все текстовые названия кнопок/меню разместить во внешнем файле в виде пар key-value (для упрощения перевода на другие языки)
Не использовать java и прочие сторонние модули производители которых требуют обновлений (которые могут привести программу к потере работоспособности)
Все вычисления/сортировка/фильтрация программа производит локально на ПК пользователя.
Крайне желательно чтобы не требовалась инсталляция ни самой программы (только загрузка с сайта и запуск), ни тем более дополнительных библиотек/интерпретаторов/программных модулей (java, visual c, .NET и т.п.).
Оценить отдельно сколько будет стоить и займет времени реализовать функцию сбора статистики (время, поисковый запрос, активные фильтры, название товара который пользователь положил в корзину или скопировал его адрес в другой браузер). Статистику 1раз/час добавлять в файл на сервере или ввиде коментариев на сайте.
Оценить отдельно сколько будет стоить и займет времени реализовать функцию “Добавить магазин”: вызывает диалог настройки парсера
Парсер (по возможности) должен быть максимально универсальный, чтобы добавление нового магазина не вызывало трудностей у неподготовленного пользователя.
(поисковые выдачи разных магазинов достаточно однотипны: картинка, цена, название, краткое описание, кол-во)