Парсинг интернет-магазинов
Разработка компонентов получения и разбора поисковых выдач книжных интернет-магазинов.
Платформа: .NET, C#.
Задачи, которые должна решать библиотека:
1. Получения поисковой выдачи по заданному ключевому слову.
2. Разбор полученной страницы и предоставление информации о товарах в выдаче
3. Предоставление информации о ходе выполнения операции (процент выполнения)
Требования к коду:
1. Разделение компонентов для каждого магазина
2. Разделение логики разбора и получения выдачи
3. Полное покрытие тестами классов разбора выдач
4. Компоненты получения и разбора для каждого интернет-магазина должны быть закрыты общим интерфейсом
5. Возможность запуска каждого компонента в нескольких потоках одновременно (изолированность)
6. Расширяемость: добавления компонента для нового магазина должна протекать легко и безболезненно.
7. Получение выдачи должно производиться компонентами HttpWebRequest или его аналогами.
8. Разбор поисковой выдачи необходимо осуществлять при помощи компонента HtmlAgilityPack или его аналогами. Возможно применение регулярных выражений в небольшом объёме.
Моменты, на которые стоит обратить внимание:
1. Иногда выдачу необходимо получать с нескольких страниц
2. Выдачи можно получать Get или Post методами в зависимости от магазина
3. Должен существовать единый класс книги для всех интернет магазинов
4. Необходимо поднимать всю возможную информацию о книге, которая присутствует в поисковой выдаче, включая идентификаторы разных сущностей (жанры, авторы и т.п.) конкретных магазинов
5. Если есть возможность вытащить URL для изображений разного размера, то парсер должен это учитывать
Разработка планируется разделить на два этапа:
1. Анализ поисковых выдач интернет-магазинов
2. Разработка домена и утверждение интерфейсов
3. Наполнение системы компонентами для каждого конкретного интернет-магазина