Научная статья на тему 'АЛГОРИТМ РАБОТЫ ВЕБ- КРАУЛЕРА ДЛЯ РЕШЕНИЯ ЗАДАЧИ СБОРА ДАННЫХ ИЗ ОТКРЫТЫХ ИНТЕРНЕТ ИСТОЧНИКОВ'

АЛГОРИТМ РАБОТЫ ВЕБ- КРАУЛЕРА ДЛЯ РЕШЕНИЯ ЗАДАЧИ СБОРА ДАННЫХ ИЗ ОТКРЫТЫХ ИНТЕРНЕТ ИСТОЧНИКОВ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
1064
98
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ВЕБ-КРАУЛЕР / СБОР ИНФОРМАЦИИ / ПОИСК В ГЛУБИНУ / ПОИСК В ШИРИНУ / ЖУРНАЛ "МОЛОДОЙ УЧЕНЫЙ" / WEB CRAWLER / INFORMATION GATHERING / DEPTH FIRST SEARCH / BREADTH FIRST SEARCH / YOUNG SCIENTIST MAGAZINE

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Вьет Нгуен Тхань, Кравец Алла Григорьевна

Сбор данных является первым этапом реализации аналитической задачи или проекта. В его основе лежит процесс извлечения и организации хранения данных в виде, наиболее пригодном с точки зрения их обработки на конкретной аналитической платформе или решения конкретной аналитической задачи. Веб-краулеры - также известные как пауки или поисковые роботы - это программы, которые реализуют процесс перемещения по страницам и/или документам в Интернете для сбора определенной информации, статистики или сохранения ресурсов сайта. В статье рассматриваются описание работы и алгоритмы для осуществления автоматического сбора информации. В качестве апробации приведена задача извлечения данных всех статей, представленных в электронном виде журнала «Молодой ученый».

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Вьет Нгуен Тхань, Кравец Алла Григорьевна

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

THE ALGORITHM OF WEB CRAWLER TO SOLVE THE PROBLEM OF COLLECTING DATA FROM OPEN INTERNET SOURCES

Data collection is the first step in the implementation of analytical task or project. It is based on the process of extracting and organizing data storage in the form that is most suitable for processing on a specific analytical platform or solving a specific analytical task. Web crawlers - also known as spiders or search robots - are programs that implement the process of navigating the pages and/or documents of the Web in order to collect specific information, statistics or save site resources. The article discusses the job description and algorithms for the automatic collection of information. As testing, the task of extracting data of all articles submitted in the electronic form of the Young Scientist magazine was carried out.

Текст научной работы на тему «АЛГОРИТМ РАБОТЫ ВЕБ- КРАУЛЕРА ДЛЯ РЕШЕНИЯ ЗАДАЧИ СБОРА ДАННЫХ ИЗ ОТКРЫТЫХ ИНТЕРНЕТ ИСТОЧНИКОВ»

УДК

Nguyen Thanh Viet1, Alla G. Kravets1

THE ALGORITHM OF WEB CRAWLER TO SOLVE THE PROBLEM OF COLLECTING DATA FROM OPEN INTERNET SOURCES

Volgograd state technical university, Lenin Pr., 28, Volgograd, 400005, Russia. e-mail: vietqn1987@gmail.com

Data collection is the first step in the implementation of analytical task or project. It is based on the process of extracting and organizing data storage in the form that is most suitable for processing on a specific analytical platform or solving a specific analytical task. Web crawlers -also known as spiders or search robots - are programs that implement the process of navigating the pages and/or documents of the Web in order to colect specific information, statistics or save site resources. The article discusses the job description and algorithms for the automatic collection of information. As testing, the task of extracting data of all articles submitted in the electronic form of the Young Scientist magazine was carried out.

Keywords: web crawler, information gathering, depth first search, breadth first search, Young Scientist magazine.

04.6

Нгуен Тхань Вьет1, Кравец Алла Григорьевна1

АЛГОРИТМ РАБОТЫ ВЕБ-КРАУЛЕРА ДЛЯ РЕШЕНИЯ ЗАДАЧИ СБОРА ДАННЫХ ИЗ ОТКРЫТЫХ ИНТЕРНЕТ ИСТОЧНИКОВ

Волгоградский государственный технический университет, пр. им. Ленина, 28, Волгоград, 400005, Россия. е-таИ: vietqn1987@gmail.com

Сбор данных является первым этапом реализации аналитической задачи или проекта. В его основе лежит процесс извлечения и организации хранения данных в виде, наиболее пригодном с точки зрения их обработки на конкретной аналитической платформе или решения конкретной аналитической задачи. Веб-краулеры -также известные как пауки или поисковые роботы - это программы, которые реализуют процесс перемещения по страницам и/или документам в Интернете для сбора определенной информации, статистики или сохранения ресурсов сайта. В статье рассматриваются описание работы и алгоритмы для осуществления автоматического сбора информации. В качестве апробации приведена задача извлечения данных всех статей, представленных в электронном виде журнала «Молодой ученый».

Ключевые слова: веб-краулер, сбор информации, поиск в глубину, поиск в ширину, журнал «Молодой ученый»..

Введение

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

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

Тем не менее, Web - динамичный субъект, развивающийся быстрыми темпами. Следовательно, существует постоянная потребность в краулерах, чтобы помочь приложениям оставаться в режиме постоянной активности, поскольку страницы и ссылки добавляются, удаляются, перемещаются или изменяются [5].

Дата поступления - 23 октября 2019 года

Существует множество приложений для веб-краулера. Одно из них - бизнес-аналитика, на основе которого организации собирают информацию о конкурентах и о потенциальных сотрудниках. Другое использование - мониторинг веб-сайтов и страниц, чтобы пользователи или сообщество могли быть уведомлены о новой информации, которая появляется в определенных местах. Существуют также вредоносные приложения краулеров, например, которые спамерами собирают адреса электронной почты или личную информацию при фишинге и другой краже личных данных [6]. Однако наиболее распространенное использование краулеров - это поддержка поисковых систем. Фактически, краулеры являются основными потребителями пропускной способности Интернета. Они собирают страницы для поисковых систем при создании индексов. Известные поисковые системы Google, Yahoo!... запускают очень эффективные универсальные краулеры, предназначенные для сбора всех страниц, независимо от их содержимого. Другие краулеры, иногда называемые предпочтительными, становятся более целенаправленными. Они загружают только страницы определенных типов или тем.

Постановка задачи

Для анализа и описания работы веб-краулера необходимо решить следующие задачи:

1. Описание основной стратегии Веб-краулера.

2. Описание алгоритма поиска в глубину и поиска в ширину.

3. Автоматизации сбора информаций статей, представленных в электронном виде журнала «Молодой ученый», в качестве апробации вышерассмотрен-ных алгоритмов.

Основная стратегия Веб-краулера

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

URL-адресы

Инициализировать фронт

-i

Выделить ссылку из фронта

Рисунок 1. Блок-схема типичного последовательного краулера

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

Поиск в глубину

В его основе содержится рекурсия, и он представляет следующую последовательность действий:

1. Пойти в смежную вершину, не посещенную

ранее.

2. Запустить из этой вершины алгоритм обхода в глубину.

3. Вернуться в начальную вершину.

На рис. 1 показан поток типичного последовательного краулера. Такой краулер загружает одну страницу каждый раз. Краулер поддерживает список непосещаемых URL-адресов, называемых фронт (frontier). Такой список инициализируется URL-адресами источниками (seed), которые могут быть предоставлены пользователем или другой программой. На каждой итерации основного цикла краулер выбирает следующий URL-адрес с фронта, скачивает страницу соответствующего URL-адреса через HTTP, анализирует ее для извлечения URL-адресов, добавляет обнаруженные URL-адреса на фронт и сохраняет страницу (или другую извлеченную информацию такую, как термины индекса, файлы,..) в локальном хранилище. Процесс сканирования может быть прекращен, когда определенное количество страниц было достигнуто. Краулер может также быть остановлен, если фронт становится пустым, хотя это редко случается на практике из-за высокого среднего количества ссылок.

4. Повторить пункты 1-3 для всех не посещенных ранее смежных вершин.

Такой алгоритм представлен на рис. 2.

Рекурсивный вызов

Помечать текущую вершину обработанной

1ершина поллечена^-^ Нет .. посещенной?

Да 1

Перейти на следующую вершину

Рисунок 2. Блок-схема обхода в глубину

Метод поиска в глубину целесообразно применять для того, чтобы обойти веб-страницы на небольшом сайте, однако для обхода Интернета он не очень удобен [2].

В целом обе эти ситуации можно решить, для этого воспользуемся другим классическим алгоритмом - поиском в ширину.

Поиск в ширину

Поиск в ширину (breadth-first search, BFS) работает аналогично поиску в глубину, однако он обходит вершины графа в порядке удаленности от началь-

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

Алгоритм, который показан на рис. 3, можно описать следующим образом:

1. Добавляем в очередь начальную вершину и помечаем посещенной.

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

3. Обрабатываем вершину.

4. Для всех ребер, исходящих из обрабатываемой вершины, не входящих во множество посещенных:

a) Добавить в очередь

b) Добавить во множество посещенных

5. Перейти к пункту 2 [2].

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

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

Апробация алгоритма обхода

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

В отдельный список реферируемых изданий («Список ВАК») журнал не входит. При этом, статьи, опубликованные в журнале «Молодой ученый», учитываются ВАК как печатный труд. Полное библиографическое описание статей журнала представлено в Научной электронной библиотеке elibrary.ru для формирования Российского индекса научного цитирования (РИНЦ). Также журнал включен в международный каталог периодических изданий «Ulrich's Periodicals Directory». [3]

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

1. Извлечь статьи из вебсайта журнала «Молодой ученый» (moluch.ru) в свою базу данных;

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

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

1. Переход на страницу сайта источника moluch.ru.

2. Получение ссылок со страницы, фильтрация элементов.

3. Извлечение нужной нам информации.

4. Обход полученных ссылок.

Так как краулер извлекает требуемые атрибуты из HTML - разметки сайта-источника, то ему должны быть заранее известны элементы веб-страниц для ориентации. Таким образом, необходимо определить ряд атрибутов сайта, на основе которых поисковой робот извлекает требуемую информацию. В нашем случае такими атрибутами являются:

1. Атрибут (регулярное выражение: ^archiveV\d+V\d+V$), определяющий наличие ссылки статьи на странице.

2. Атрибут (селектор div.page_header hi), определяющий заголовок статьи.

3. Атрибут (селектор div.j_des span [itemprop ='author']), определяющий авторов статьи.

4. Атрибут (селектор div.j_des span [itemprop ='articleSection']), определяющий рубрику статьи.

5. Атрибут (селектор div[itemprop ='articleBody']>p>em), определяющий абстракт статьи.

6. Атрибут (селектор span[itemprop='keywords']), определяющий ключевые слова.

7. Атрибут (селектор span[itemprop='issueNumber']), определяющий год издания.

Рисунок 3. Блок-схема обхода в ширину

Date modified

Typt

ВЩиМи

i_12016_aicli ive_

ОЩжМи. ВЩиМи ВЩиМи ВЩиМи ВЩиМи ВЩиМи ВЩиМи ВЩиМи ВЩиМи ВЩиМи ВЩиМи ВЩиМи ВЩиМи ВЩиМи ВЩиМи ВЩиМи ВЩиМи ВЩиМи В 2016_aiïhive. В 2016_aiïhive.

В 2016_aiïhive. В 2016_aiïhive. В 2016_aiïhive.

.1 ими JÜ_372Si_,M JÜJJ414.M .133.371 iSM .130.3533Ш .130_36098_,М J!1_36504_M .134_376В_,М J!4J7f1ï_,M

.132.3690Ш JÜJJ14S.M .ИЗЩЫ .132.369Í9M .1¡1_36607_,ht УЛШАЫ J 33.373 DI ..M JÎIJWIJ.ht .133.3717? M .133.3722Ш J30.361S4.M J34.376Í9.U JÜ.3731Z.M J31_36309_,M 132 36717 M

24/04/201912:06... TeíDocument

24/04/2019 12:29,. TeíDocument

24/04/2019 12:32,. TeíDocument

24/04/2019 12:27,,, TatDocumeiit

ЗКЁ ЗКЁ

2016_aríhive_133_37263_.txt - Notepad

File Edit Format View Help

{"title": "Регулирование и оптимизация финансового обеспечения промышленного предприятия"; "authors": "Ханипов Эльвир Фанилевич", "section": "Экономика и управление",

"abstract": "Возможности для финансирования предприятий зависят от макро и микроэкономическ ости используется чаще, особенно в финансовых анализах для оценки финансовой стабильности] п "keywords": "финансирование, оптимизация, промышленное предприятие, финансовый менеджмент", "year": "2D16"}

¿ЧЩШМ IÍ.JU... iHiuoiumem ¿ 'г-

24/04/2019 12:11 „, Tat Document 2KB

24/04/2019 12:27,,, Tat Document 2KB

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

24/04/2019 12:28,,, Tat Document 2KB

24/04/2019 12:06,,, Tat Document 2KB

24/04/2019 12:36,,, Tat Document 2KB

24/04/2019 12:30,,, Tat Document 2KB

24/04/2019 12:09,,, Tat Document 2KB

24/04/2019 12:11. Tat Document 2KB

Рисунок 4. Извлеченные данные статей в БД

Алгоритмом поиска в ширину собрано 65835 статей (из всех 67268 ссылок, в момент написания этой статьи) в рамках одного веб-сайта журнала «Молодой ученый» с целенаправленными данными. На рис. 4 показаны извлеченные данные из сайта-источника и сохраненные в текстовых файлах .БОМ).

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

Рисунок 5. Графики изменения количества ссылок при каждой итерации

Программа апробации написана на языке Python с пакетами Requests и Beautiful Soup для использования данных с веб-страниц. Модуль Requests позволяет интегрировать программы Python с веб-сервисами, а модуль Beautiful Soup предназначен для ускорения анализа экранных данных. С использованием интерактивной консоли Python и этих библиотек можно проанализировать веб-страницу и работать с имеющейся текстовой информацией.

Заключение

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

В дальнейшем планируется расширить эксперимент, сравнив тематический краулер на основе алгоритма Клеинберга, анализирующий гиперссылочную структуру Веб-пространства, и сфокусированный крау-лер на основе TF-IDF алгоритма, анализирующий содержание каждой Веб-страницы.

Исследование выполнено при финансовой поддержке РФФИ в рамках научного проекта № 19-0701200.

Литература

1. Pant G, Srinivasan P., Menczer F Crawling the Web In: Web Dynamics. Berlin, Heidelberg: Springer, 2004. Р. 153-177.

2. Петров А. Поиск под капотом Глава 1. Сетевой паук. URL: https://habr.com/ru/post/345672/ (дата обращения: 25.01.2019).

3. Молодой ученый. URL: http://lib.usfeu.ru/index.php/elektronnye-versii-zhurnalov#e9 (дата обращения: 30.11.2018).

4. Кравец А.Д., Петрова ИЮ, Кравец А.Г. Агрегация информации о перспективных технологиях на основе автоматической генерации интеллектуальных агентов мультиагентных систем // Прикаспийский журнал: управление и высокие технологии. 2015. № 4. С. 141-147.

5. Перепелицын В.А., Кравец А.Г. The method of random walks for the analysis of social networks // Ин-

формационные технологии в науке, образовании и управлении: матер. XLIV междунар. конф. и XIV меж-дунар. конф. молодых учёных IT+S&E"16. Весенняя сессия Гурзуф, 22 мая - 1 июня 2015 г. / под ред. Е.Л. Глориозова. М.: ИНИТ, 2015. C. 168-173.

6. Гнеушев В.А., Кравец А.Г., Козунова С.С., Бабенко А.А. Моделирование сетевых атак злоумышленников в корпоративной информационной системе // Промышленные АСУ и контроллеры. 2017. № 6. С. 5160.

7. Ананченко И.В., Гайков А.В., Мусаев А.А. Технологии слияния гетерогенной информации из разнородных источников (data fusion) // Известия СПбГТИ(ТУ). 2013. № 19(45). С. 98-105.

References

1. Pant G, Srinivasan P., Menczer F Crawling the Web In: Web Dynamics. Berlin, Heidelberg: Springer, 2004. Р. 153-177.

2. Petrov A. Poisk pod kapotom Glava 1. Setevoj pauk. URL: https://habr.com/ru/post/345672/ (data obrashcheniya: 25.01.2019).

3. Molodoj uchenyj. URL: http://lib.usfeu.ru/index.php/elektronnye-versii-zhurnalov#e9 (data obrashcheniya: 30.11.2018).

4. Kravec A.D., Petrova I.YU, Kravec A.G. Agregaciya informacii o perspektivnyh tekhnologiyah na osnove avtomaticheskoj generacii intellektual'nyh agentov mul'tiagentnyh sistem // Prikaspijskij zhurnal: upravlenie i vysokie tekhnologii. 2015. № 4. S. 141-147.

5. Perepelicyn V.A., Kravec A.G. The method of random walks for the analysis of social networks // Infor-macionnye tekhnologii v nauke, obrazovanii i upravlenii: mater. XLIV mezhdunar. konf. i XIV mezhdunar. konf. molodyh uchyonyh IT+S&E" 16. Vesennyaya sessiya Gur-zuf, 22 maya - 1 iyunya 2015 g. / pod red. E.L. Glori-ozova. M.: INIT, 2015. C. 168-173.

6. Gneushev V.A., Kravec A.G,, Kozunova S.S., Babenko A.A. Modelirovanie setevyh atak zloumyshlenni-kov v korporativnoj informacionnoj sisteme // Promysh-lennye ASU i kontrollery. 2017. № 6. S. 51-60.

7. Ananchenko I. V,, Gajkov A. V,, Musaev A.A. Tekhnologii sliyaniya geterogennoj informacii iz raznorod-nyh istochnikov (data fusion) // Izvestiya SPbGTI(TU). 2013. № 19(45). S. 98-105.

i Надоели баннеры? Вы всегда можете отключить рекламу.