logo
Разработка автоматизированной веб-ориентированной системы составления каталога товаров при поиске по изображениям

2.1 Методика получения информации с электронных ресурсов

В связи с отсутствием на рассматриваемом сайте API функций для получения информации необходимо загружать страницы товарных позиций и извлекать информацию непосредственно со страницы, для этого необходим программный доступ к элементам страницы. Также необходимо учесть, что часть информации на странице подгружаются с сайта с помощью технологии Ajax, при выполнении определенных скриптов. В связи с этим обычных Http запросов будет недостаточно, необходимо обеспечить выполнение этих скриптов на странице. Учитывая все вышесказанные факты в качестве объекта, получающего страницу с сайта, был выбран WebBrowser, поставляемый вместе с Visual Studio.

Для удобства разработки был написан модуль расширений для WebBrowser и элементов DOM (HtmlElement) позволяющие дожидаться загрузки документа, загрузки определенных элементов DOM с определенными значениями id,class, tagName, позволяют делать выборку из непосредственных вложенных элементов и в каскадном режиме элементов, определять их классы.

Сайт представляет собой большую сеть электронных магазинов, причем ссылки на магазины изначально неизвестны. Поэтому на первом этапе необходимо пройти множество ссылок, изменяя параметр, отвечающий за id магазина и запомнить id, которые соответствуют существующим магазинам. Для ускорения процесса данная процедура проверки выполняется одновременно в множество потоков.

На следующем этапе мы должны пройтись в множество потоков по магазинам и извлечь всю информацию о товарах этого магазина, предварительно определив категории, на которых специализируется магазин.

Для каждого товара сохраняются картинки, а также отзывы покупателей, чтобы уменьшить время затрачиваемое на парс одного товара это происходит асинхронно.

Применение метода SURF для поиска групп одинаковых товаров.

Для составления групп одинаковых товаров используется комбинированный метод сравнения товарных позиций, состоящий из сравнения по именам товаром, используя нечеткое сравнение строк, и сравнение по изображениям, используя метод SURF.

Метод SURF состоит из двух этапов.

На первом этапе метода SURF составляются дескрипторы особых точек для главных изображений товаров. Данный этап производится в несколько потоков для уменьшения времени.

На втором этапе производятся сравнения дескрипторов особых точек различных изображения и формируются группы одинаковых товаров. У каждой группы формируется ряд эталонных товаров, с которыми впоследствии и производятся сравнения.

Для сокращения времени составления групп сравниваются товары только из одинаковых категорий.

Поскольку количество товарных позиций настолько велико, что ресурсов оперативной памяти не достаточно, чтобы загружать их все сразу был реализован алгоритм поблочной загрузки.

Методика состоит в следующем: когда на вход поступает очередной товар он сравнивается с эталонными товарами уже существующих групп, если он не входит ни в одну из существующих, то добавляется новая группа, и товар попадает в эталонный. Если же товар входит в группу, то он попадает либо в эталонные товары, если их недостаточное количество, либо просто заносится в группу.