ОПИСАНИЕ АЛГОРИТМА РАБОТЫ КРАУЛЕРА-АНАЛИЗАТОРА СПРОСА ДЛЯ ИНТЕРНЕТ-МАГАЗИНА ЮЛМАРТ - Студенческий научный форум

VII Международная студенческая научная конференция Студенческий научный форум - 2015

ОПИСАНИЕ АЛГОРИТМА РАБОТЫ КРАУЛЕРА-АНАЛИЗАТОРА СПРОСА ДЛЯ ИНТЕРНЕТ-МАГАЗИНА ЮЛМАРТ

Большакова А.Ю. 1, Охапкина Е.П. 1, Воронова Л.И. 1
1ФГБОУ ВПО «Российский государственный гуманитарный университет»
 Комментарии
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF
В статье кратко изложено описание и алгоритм работы краулера-анализатора спроса для интернет-магазина Юлмарт, выполненные в рамках курсовой работы на тему «Исследование применения мультиагентных систем в области электронной коммерции» (РГГУ, ФИСБ, 4 курс)

С появлением глобальной Интернет-экономики начала стремительно возрастать сложность и динамика бизнеса [1]. При этом бизнес нуждается в постоянном совершенствовании сервиса для клиентов, реализации всё более персонализированного и индивидуализированного подхода к каждому потребителю, постоянного внедрения инноваций и сокращения издержек, распространения бизнеса на новые сферы и осуществлении минимизации рисков.

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

Рассмотрим работу краулера-анплизатора спроса интернет-магазина Юлмарт, (http://ulmart.ru)

Краулер-анализатор состоит из трех основных частей: база данных, блок управления краулером (включая интерфейс пользователя и представление результатов) и блок сканирования и обработки данных. В качестве основы для базы данных выбрана бесплатная версия СУБД Microsoft SQL Server 2008 R2 Express Edition, поскольку с ней легко интегрируются приложения платформы .NET.

Для хранения информации используется 5 таблиц: Crawler Settings, Seeds, External Link, Internal Links, Bad Links. В таблице Crawler Settings хранятся настройки для краулера. Например, значение одной из настроек ограничивает максимальный уровень страниц, до которого может дойти краулер в процессе сканировании веб-сайта. Это значение устанавливается по умолчанию и распространяется на все сканируемые сайты.

Таблица Seeds содержит начальную информацию обо всех сканируемых веб-сайтах. Начальная информация о каждом веб-сайте задается пользователем и представляет собой номер сайта, полное название сайта, его краткое название и начальный адрес – доменное имя сайта, с которого начинается сканирование. В таблице Internal Links хранятся сведения о внутренних ссылках, найденных на сканируемых сайтах. Они описываются собственно самой ссылкой, начальным адресом, страницей, на которой найдена внутренняя ссылка, уровнем этой страницы и её статусом, показывающим, обработана ли страница, соответствующая внутренней ссылке, краулером или нет. Таблица External Links содержит информацию обо всех найденных внешних гиперссылках. В этой таблице поля во многом аналогичны таблице Internal Links, за исключением того, что у внешней ссылки нет статуса обработки. Кроме того, добавлено поле, содержащее контекст гиперссылки. Таблица Bad Links содержит так называемые «плохие ссылки». Например, это ссылка, которую краулер не смог воспринять, как корректную ссылку, хотя этот элемент был под тегом href. Также сюда могут попасть фрагменты javascript-кода, так как иногда веб-мастера вставляют его прямо в тело ссылки.

Рассмотрим блок управления краулера и пользовательский интерфейс. Пользователю предоставляются следующие возможности по управлению краулером: пуск/остановка работы краулера (надо отметить, что в случае прерывания краулер продолжит с места остановки, не потеряв ссылок), просмотр текущего списка сайтов, добавление новых и удаление ненужных сайтов. Также пользователю дается возможность просматривать собранные ссылки. Для этого разработано специальное окно, содержащее две отдельные страницы, где можно просматривать все собранные внешние и внутренние ссылки, фильтровать результаты и удалять выбранные ссылки. Просмотр результатов проходит в режиме «реального времени», т.е. прямо во время работы краулера: при нажатии на кнопку «Refresh» результаты будут обновлены.

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

Процесс сбора ссылок происходит следующим способом: из базы данных берутся начальные адреса всех сайтов и для каждого из них последовательно запускается процесс сканирования по обработке. Решение о том, в какую именно таблицу занести ссылку, краулер принимает на основе доменного имени, которое он извлекает из ссылки. Если доменное имя извлеченной ссылки совпадает с доменным именем сканируемого сейчас сайта, значит ссылка внутренняя, если нет, то внешняя. После завершения обработки страницы краулер извлекает из базы данных следующую необработанную внутреннюю ссылку с самым высоким уровнем для данного сайта. Таким образом, сканирование сайта можно представить как обход виртуального дерева сайта по принципу «вначале вширь».

В идеальном случае работа краулера завершается в том случае, когда будут полностью отсканированы все сайты из заданного списка. В реальности работа может быть завершена по истечении выделенного процессорного времени. На практике такой вариант завершения работы имеет недостатки. Например, если в списке сканируемых сайтов первым окажется сайт большого размера, есть опасность затратить на него всё отведенное время. Естественным развитием модуля-планировщика является процедура управления последовательностью сканирования сайтов, последовательно выделяющая каждому сайту из текущего списка определенный квант времени для его сканирования. В этом случае даже по истечении выделенного процессорного времени будут частично (или полностью) отсканированы все сайты из списка.

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

Порядок действий:

  1. Запустим системного агента.

  2. Создадим агента проекта Crauler1

  3. Параметры агента:

    1. Количество товара (значение 1),

    2. Стоимость проекта (значение 100).

  4. Создадим агента Goods1 с количеством 5 единиц и агента Goods2 с количеством 4 единиц (см. рис.1)

Рис. 1. Запуск агентов Crauler1, Goods1, Goods2

В результате матчинга, осуществляемого агентами, устанавливаются связи между агентами товаров и агентом краулера, поскольку удовлетворены все необходимые условия (см. рис 2).

Рис.2. Результат матчинга между агентами

Создадим агента Goods3 с количеством 4 единицы (см. рис. 3)

Рис.3. Запуск агента Goods3

Агент Goods3 не может найти подходящий проект, поскольку в проекте Crauler1 уже участвуют товары с таким же или большим значением опыта. Агент Goods3 переходит в режим циклического поиска подходящих проектов (см. рис.4).

Рис.4. Циклический поиск подходящих проектов агентом Goods3

Создадим агента Goods4 с количеством 10 единиц (количество единиц в этом случае должно быть больше 4 – самого меньшего значения агентов, участвующих в матчинге) рис.5.

Рис.5. Запуск агента Goods4

Агент Goods4 начинает поиск доступных проектов, рассылая заявки со своими параметрами. Агент проекта, получив эту заявку и проанализировав ее, определяет, что данный товар более желателен для участия в проекте. Далее агент краулер определяет товар, который можно заменить (по принципу «самое слабое звено» – товар с наименьшим и разрывает связь с этим агентом (в данном случае это Goods2). Устанавливается соединение с агентом Goods4. Таким образом, демонстрируется возможность разрыва старых и установления новых связей агентом проекта при изменениях в сцене (появлении нового агента)

Рис.6. Разрыв старых и установления новых связей агентом проекта при появлении нового агента

Агент Goods2 переходит в режим поиска подходящих проектов.

Рис.7. Поиск подходящих проектов агентом Goods2

Порядок действий:

  1. Создадим агента проекта Crauler2.

  2. Параметры агента:

    1. Стоимость проекта (значение 100),

    2. Необходимое количество товара (значение 1).

Агенты Goods2 и Goods3 устанавливают связи с агентом Crauler2, поскольку удовлетворены все условия. Продемонстрирована возможность повторного установления связи агентом товара (Goods2) при изменениях в сцене (разрыве предыдущей связи и появлении нового агента проекта) (см. рис. 8).

Рис.8. Установление новых связей при изменении сцены

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

Список источников и литературы:

  1. Солодуха Т.В. Мультиагентные системы в экономике. URL: 2009.it-edu.ru/docs/Sekzii_4-5/20_Soloduha_1253475363569911.doc (дата обращения 25.01.2015)

Просмотров работы: 888