Методики и результаты экспериментального исследования программного продукта

Обоснование выбора языка программирования и инструментальных средств для создания макетов и рабочей версии программного продукта. Методики экспериментального исследования программного продукта. Запуск системы с использование конфигурационного файла.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 04.08.2018
Размер файла 1,9 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Оглавление

Введение

1. Анализ существующих технических решений

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

3. Методики и результаты экспериментального исследования программного продукта

4. Экономическое обоснование

5. Представление продукта

6. Руководство пользователя для работы с системой

6.1 Шаг 1 “Заполнение конфигурационного файла”

6.2 Шаг 2 “Запуск системы с использование конфигурационного файла“.

6.3 Шаг 3 “Контроль качества выходных файлов“.

Заключение

Список использованных источников

Введение

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

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

Однако, при поисках статей нужного автора и тематики уходит большее количество сил и времени. В настоящее время одной из главных тенденций в этой сфере является автоматизация данного процесса. Каждый раз при сборе данных для исследовательской работы люди тратят значительное количество сил и времени для поиска печатных статей в библиотеках. Но почти вся информация сейчас переведена в электронный вид и поиск работ определенного автора и по заданной тематике с использованием уже созданного классификатора УДК затруднен. В России над данной проблемой работает, например, научно-информационный и аналитический центр ВИНИТИ РАН, создавший первоначально в 2010 году Реферативный журнал (РЖ) со статьями в бумажном виде. С наступлением компьютеризации общества данный формат РЖ был переорганизован в единый электронный реестр [1]. Так как в настоящее время не существует индексации веб-страниц по каким-либо классификаторам и аналогам на популярных площадках с большим объемом статей, в ВИНИТИ РАН было решено создать реферативную базу данных с полным объемом публикаций на русском языке с удобной иерархической структурой. Однако, пополнение данного реестра в ручном режиме достаточно трудоемкий процесс, требующий большого количества человеческих ресурсов. Одним из возможных способов для решения этой проблемы является создание универсального веб-краулера для автоматизации процесса поиска и загрузки интересующих статей.

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

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

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

1. Выбрать и изучить подходящую библиотеку краулера с открытым исходным кодом для сканирования и сбора данных с веб-страниц.

2. Выбрать формат полученных данных.

3. Изучить наиболее популярные структуры веб-сайтов издательств.

4. Разработать для каждого изученного сайта веб-краулер.

5. Установить подобие в разработанных системах.

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

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

1. Анализ существующих технических решений

Большинство имеющихся в сети Интернет проектов по данному направлению представляют собой системы скачивания всей html-страницы с тегами, рекламой и другими ненужными данными. Один из таких проектов [2] под названием Teleport Pro представляет собой приложение для скачивания полностью страницы или отдельных масок, например, все картинки на странице, что является некорректным решением поставленной задачи из-за большого количества лишних данных.

Также существует большое количество работ в сети Интернет данного направления, которые являются разработанными под конкретные типы сайтов веб-краулеры на базе различных фреймворков. Рассмотрим наиболее популярные краулеры с открытым исходным кодом, описанных на блог-ресурсе Top 50 open source web crawlers [3].

1. Scrapy [4] (кросплатформенный, параллельный, сфокусированный) - это расширяемый и гибкий краулер, написанный на я зыке программирования Python, который легко устанавливается, поддерживает выгрузку данных в JSON, CSV, XML. Устойчивый и активно развивающийся, производительный, позволяющий держать множество соединений за раз.

2. Open Search Server [5] (инкрементный, параллельный, кросплатформенный) - это краулер и поисковой движок, ядро которого написано на Java, поддерживающий современные подходы к полнотекстовому поиску, в частности поддерживает геолокацию. Кроме того, поддерживает 18 языков. Это надежный и производительный инструмент. Поддерживается платный облачный сервис с сконфигурированной инфраструктурой.

3. Crawlerj [6] (параллельный, кросплатформенный) - это краулер, написанный на java, c простым API. Не поддерживает индексирования. Может порождать излишнюю нагрузку на исследуемый хост.

На данный момент нет существующих открытых систем для автоматизации процесса скачивания статей для сайтов с любой структурой веб-страниц. Большинство работ в сети Интернет данного направления являются разработанные под конкретные типы сайтов веб-краулеры на базе различных фреймворков. Одна из таких работ [7] представляет собой веб-граббер, для различных сайтов Бразилии. Работа данного граббера ориентирована только на индексированные сайты, что не подходит для пользователей, взаимодействующих с бесструктурными сайтами, а также в нем отсутствует поддержка русского языка. Другая работа [8] под названием Deep Web Crawler использует несколько баз данных, что приводит большим затратам средств и времени на дополнительные запросы к серверу хранения загруженной информации. Исходя из анализа существующих решений, следует вывод, что нужно создать систему, поддерживающую быстрый доступ к собранным данным и обладающей возможностью работы с веб-сайтами любой структуры страниц, а также с русскоязычным интуитивным графическим интерфейсом для использования универсального краулера неопытными пользователями.

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

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

язык программирование конфигурационный файл

Для разработки универсального веб-краулера была выбрана открытая фреймворк сбора данных Scrapy.

Scrapy - это бесплатная и открытая веб-платформа для сканирования и сбора информации в Интернете. В настоящее время он поддерживается компанией Scrapinghub Ltd., которая специализируется на разработке и обслуживании сетей. Архитектура проектов Scrapy построена вокруг «пауков», которые являются автономными сканерами, которым предоставляется набор инструкций. Некоторые известные компании и продукты, использующие Scrapy: Lyst, CareerBuilder, Parse.ly, Sayone Technologies, Science Po Medialab.

Scrapy создана в лондонской компании агрегирования сети и электронной коммерции Mydeco, где он был разработан и поддерживается сотрудниками Mydeco и Insophia (веб-консалтинговой компании, базирующейся в Монтевидео, Уругвай). Первый публичный релиз был в августе 2008 года под лицензией BSD с выпуском версии 1.0 в июне 2015 года. В 2011 году Scrapinghub стал новым официальным владельцем данного фреймворка [9].

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

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

Метод локального хранения подразумевает под собой обработку собранных данных, преобразование и вывод их в файлы, созданные на запустившем разработанную систему устройстве. Для упрощенной работы с данными, в частности, в ВИНИТИ РАН используется формат хранения данных ISO-2709 с особенностями принятыми в ИПС CDS-ISIS [10]. Файлы в данном формате являются текстовыми. Содержимое файла состоит из трех составляющих:

- Leader segment;

- Directory segment;

- Data Fields segment.

Leader segment и Directory segment состоят из цифровых символов фиксированной длины, описывающих параметры доступа к элементам в третьем сегменте. Каждая запись заканчивается специальным символом. Так как хранить в файле строки с большой длиной символов нецелесообразно, они ограничены размером в 80 символов и заканчиваются так же определенным символом. В Data Fields segment хранятся соответственно уже собранные и обработанные данные. Пример содержимого выходного файла в формате ISO-2709 приведен на рис. 1.

Рисунок 1 - Пример записи формата ISO-2907.

Основываясь на данном формате, в проекте в качестве информационных носителей выбраны текстовые файлы, но только с Data Fields segment.

При внедрении системы в какое-либо предприятие формат содержимого может быть переделан путем добавления остальных сегментов.

Scrapy - простой и понятный модуль, который входит в любой дистрибутив Python. Разрабатываемая система написана на данном высокоуровневом языке программирования.

3. Методики и результаты экспериментального исследования программного продукта

Решение поставленной задачи выполнено в несколько этапов:

1. Создание виртуального окружение для проекта.

2. Определение способа ввода входных данных.

3. Определение критериев поиска.

4. Разработка персональных систем скачивания статей для сайтов с разными структурами.

5. Разработка универсальной системы автоматизированного скачивания статей с сайтов издательств.

Для создания виртуального окружения проекта был использован инструмент virtualenv, позволяющий устанавливать пакеты Python изолированно от системы (Рисунок 2). Виртуальное окружение предотвращает засорение операционной системы и дает возможность использовать разные версии пакета в разных проектах. Использование отличных друг от друга версий библиотек необходимо при работе над несколькими проектами, либо при транспортировке системы с одной вычислительной машина на другое. Так как на разных компьютерах могут быть установлены разные версии пакетов языков программирования или других служб, работа системы может быть нестабильна. Например, при переносе краулера с персонального компьютера под управлением операционной системы Windows 8 на другой под управлением операционной системы компании Microsoft более новой версии, требуемых установленных пакетов для работоспособности краулера, библиотек может не оказаться вовсе. Зачастую в таком случае требуется их установить при помощи предустановленного встроенного пакетного менеджера: для Windows десятого поколения это OneGet, для операционных систем семейства Ubuntu - apt-get. Как правило, при установке любого пакета, происходит первоначально обновление списка пакетов в менеджере и инициализация последней версии загружаемой службы. В этом случае снова возникает проблема различия версий. Именно для этого в начале любого проекта необходимо при наличии возможности обезопасить разрабатываемую систему доступным виртуальным окружением. Virtualenv достаточно популярное виртуальное окружения для проектов разрабатываемых на высокоуровневом языке программирования Python. Кроме того, так как существуют различные поколения данного языка программирования, в Virtualenv имеется возможность установки определенной версии Python. В данном проекте было решено использовать язык программирования третьего поколения, данный выбор был сделан на основании того, что все больше разработчиков библиотек и фреймворков переходят на новые версии данного языка.

Рисунок 2 - Создание виртуального окружения проекта.

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

Язык XML был создан с использованием простого обусловленного синтаксиса, для легкого создания и обработки документов как человеком, так и программами. Он является расширяемым, так как не существует конкретных правил написания, кроме синтаксических. Разработчик сам согласует и следует правилам для конкретной области в соответствии с потребностями проекта. Все составляющие элементы документа обобщены в корневую часть. Они могут быть как символьные, так и числовые (дата, имя и прочие типы данных). Каждое поле информации заключается в теги, названия которых определяются также разработчиком. Объекты могут иметь вложенные или дочерние элементы, образуя иерархическую структуру. В документе формата XML могут присутствовать комментарии и различные инструкции. Теги состоят из названия, обособленного треугольными скобками. В закрывающий поле тега перед названием добавляется символ наклонной черты. Пример xml-документа представлен на рис. 3.

Рисунок 3 - Простой пример xml-документа.

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

При выборе критериев для поиска научных статей следует обратить внимание на наличие основных составляющих публикации, а также ее метаданных. Практически в любой статье присутствует заголовок, авторы, текст статьи и во многих научно-технических публикациях имеется рубрикатор УДК, позволяющий определить тематику работы. Также стоит отметить, что любая статья, размещенная в глобальной сети в электронном издательстве имеет свой url-адрес. Как правило, перечень url-адресов хранятся на родительской веб-странице в виде блоков гиперссылок. Поэтому в качестве метаданных стоит учитывать так же url-адрес родительской веб-страницы электронных издательств. Многие блоки гиперссылок являются многостраничными, наличие переключателей является неотъемлемой частью задаваемых параметров при сборе информации с публикаций. Последнее, что стоит учесть - это название директории куда будут поступать выходные файлы.

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

1. Url-адрес блока с гиперссылками на статьи.

2. Url-адрес гиперссылки на статью.

3. Наличие многостраничности блока с гиперссылками.

4. Название директории для выходных файлов.

5. Заголовок статьи.

6. Инициалы хотя бы одного автора статьи.

7. Отрывок текста статьи.

8. Номер рубрикатора УДК для поиска.

9. Фамилия автора для поиска.

Вид получившейся структуры содержимого входного файла представлен на рис. 4.

Рисунок 4 - Пример структуры содержимого входного xml-документа разработанной системы.

Так как поиск статей происходит в основном по определенной тематике и большинство авторов работают в определенной сфере деятельности, то поиск публикаций выполняется по указанным в конфигурационном файле автору статей и рубрикатору УДК. Если эти поля оставлены, это означает отсутствие фильтров результатов. В таком случае будут скачиваться все статьи подряд. Главная особенность краулера состоит в том, что все поля, кроме полей-фильтров будут обязательными и при считывании файлов проверяется их наличие.

Для разработки веб-краулеров был выбран открытый фреймворк сбора данных Scrapy (Рисунок 5).

Рисунок 5 - Scrapy краулер.

Для создания краулера с помощью Scrapy выполнены 3 этапов разработки:

1. Создание паука, который выполняет GET-запросы.

2. Извлечение данных из HTML-документа.

3. Обработка и экспорт данных.

При создании паука указываются начальные url-ссылки, на которые будут происходить запросы. Далее конфигурируются допустимые домены для запроса (Рисунок 6). Все это указывается в классе паука, как атрибуты.

Рисунок 6 - Начальные атрибуты паука.

Далее в функции по умолчанию def parse(self, response) были заданы правила по извлечению html данных. Так как веб-страница представляет собой структурированный html-документ, а структура на электронных сайтах издательств всегда одинаковая: имена авторов хранятся в отдельных тегах указанного класса, а заголовок статьи имеет класс “title”, также можно задавать конкретные блоки для выгрузки в качестве xpath-запросов. (Рисунок 7).

XPath - язык запросов к XML или HTML-документа. Синтаксис в данном отличается от принятого в XML. Xpath запрос обращается в html-документу и получает содержимое определенного блока. В нашем случае при разработке персональных веб-краулеров к определенным веб-сайтам, вычисление и ввод xpath-запросов в коде производится вручную. Указывается блок, в котором хранятся гиперссылки на другие статьи. Происходит извлечение всех ссылок из него. После чего краулером совершается переход по ним на веб-страницы статей. Далее требуемые данные извлекаются со страниц статей так же при помощи xpath-запросов и объединяются в один документ.

Рисунок 7 - Функция def parse() в пауке Scrapy.

Для обработки и экспорта данных используется специализированный класс в библиотеке Scrapy - ItemLoader, который при получении html-страницы так же с помощью либо xpath-запросов, либо css-запросов извлекает предопределенные данные в структуру заданную первоначально в классе Items() (Рисунок 8). Обработанные данные краулер выдает в режиме реального времени на экран пользователя. Настройка экспорта данных реализуется в классе ItemPipelines(), которая служит конвейером между выходными данными системы и входными в экспортные файлы (Рисунок 9). Это могут быть json-файлы, база данных или же обычные текстовые файлы.

Рисунок 8 - Класс item и itemloader для извлечения требуемых данных.

Рисунок 9 - Простейший конвейер просто возвращающий элемент с атрибутами.

После разработки персональных систем следовало уделить внимание тому, что структуры у многих сайтов разные, но все они отображаются в виде html-документа. Основная разница между ними заключается в разном расположении тех или иных требуемых объектах, полях. В персональных краулерах отличие состояло в основном только в xpath-запросах. Однако у многих блоков с гиперссылками имеется переключатель страниц. Значит при разработке универсальной системы было необходимо дополнить функциональность краулера путем парсинга html-тегов и составления персональных xpath-запросов. Для решения этой задачи было принято решение считывать одну статью из конфигурационного входного файла. Иными словами, до запуска системы, она не знает с какой структурой сайта будет работать. Поэтому как только универсальный краулер запущен, он считывает обязательные параметры в xml-документе, ищет их в hml-документе и формирует xpath-запросы а также ищет переключатели страниц, если таковые имеются, что делает систему более универсальной.

С этой задачей хорошо справилась специализированная Python библиотека BeautifulSoup. C помощью нее в теле паука был реализован условный конструктор xpath-запросов. Для создания корректных запросов программа просит пользователя ввести в качестве примера тему одной из существующих статей на выбранном сайте издательств, имя автора, и соответственно предложение из статьи. Для наглядности и быстрой отладки был разработан вначале краулер именно с ручным вводом параметров. Далее условный конструктор составляет запрос из минимум двух тегов с атрибутами (Рисунок 8). К сожалению, такой подход работает не с каждым атрибутом. В основном рубрикаторы, такие как УДК, указываются в самом начале статьи, но основываясь на анализе статей, зачастую это правило обуславливается не началом статьи, а первой страницей статьи. Поэтому BeautifulSoup отлично справилась с данной задачей, но xpath запрос не был сгенерирован для данного поля. При поиске рубрикатора УДК в статье используется метод работы со строками find() из стандартной библиотеки, который представляет html-страницу как обычный текстовый файл.

В качестве фильтра скачиваемого контента используется условный конструктор в ItemLoader, который сравнивает статьи с введенными пользователем атрибутами: фамилией автора и номер рубрикатора УДК. В отличие от фамилии автора, номер УДК парсится в статье также с помощью специализированной библиотеки Urllib, из-за того, что он не имеет постоянного места в статьях.

После корректного сбора данных со статей, происходит их загрузка в текстовые файлы неполного формата ISO-2709. Название файла должно быть уникальным, чтобы не происходила перезапись файлов. Для этого используется фамилия автора и начало заголовка статьи с применением даты скачивания статьи.

Хорошим преимуществом Scrapy является высокая производительность, но в силу того, что сеть Интернет постоянно развивается, в настоящее время на большинстве веб-сайтов стоят определители роботов, похожих на разработанную нами систему. Поэтому в качестве безопасности в настройках веб-краулера необходимо задавать атрибут Download Delay (задержка загрузки), в котором указывается интервала времени между которым будут происходить запросы. В нашем случае выбран параметр 4 секунды. Это нужно, пользователя не блокировали на информационных ресурсах или просили выполнить анти-бот действия. Установка данного интервала уменьшает скорость обработки статей, и данный показатель составляет 15-17 страниц в минуту.

Рисунок 10 - Начало запуска программы с вводом тестовых данных.

В данной работе выбран метод локального хранения собранных данных. Основным преимуществом данного метода является сокращение времени на просмотр скаченных статей, так как не тратится время на дополнительные запросы к серверу базы данных. Программа просит ввести название каталога в котором будут храниться документы (Рисунок 11).

Рисунок 11 - Пример экспорта собранных данных в каталоге.

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

4. Экономическое обоснование

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

Несмотря на достаточно большую стоимость, данная система позволяет сэкономить достаточно большое количество человеческих и соответственно денежных ресурсов в информационно-аналитических центрах, таких как ВИНИТИ РАН. К примеру, если на предприятии работает 30 человек, которые вручную собирают данные научных статей при зарплате 100 рублей/час, то за год компания потратит за полную сорокачасовую неделю, исходя из того, что в 2018 году 1970 рабочих часов [11], около 6 миллионов рублей. С внедрением разработанной системы в предприятие, число работников будет возможно сократить до 10 человек, которые будут задавать исходные параметры веб-сайтов и контролировать правильную функциональность универсального краулера, автоматизирующего процесс скачивания данных с научных публикаций и статей. Таким образом, экономия в год составит 3 миллиона рублей. В связи с этим срок окупаемости проекта составляет приблизительно 6 месяцев.

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

5. Представление продукта

Для наглядного описания принципа работы разработанной системы использован унифицированный язык моделирования UML.

Unified Modeling Language (UML) позволяет графически изображать или описывать объектное моделирование при разработки различных систем. Данный язык на сегодняшний день является открытым и общепринятым стандартом для создания абстрактных моделей разрабатываемых систем.

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

Рисунок 12 - Диаграмма последовательности разработанной системы.

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

Рисунок 13 - Диаграмма классов системы.

6. Руководство пользователя для работы с системой

6.1 Шаг 1 “Заполнение конфигурационного файла”

В конфигурационном файле находятся девять полей, шесть из которых обязательные. Шаг “Заполнение конфигурационного файла” состоит из следующих этапов:

- Выбираем желаемый ресурс (Рисунок 14).

- Находим веб-страницу с блоком интересующих нас статей.

- Копируем url-адрес этой страницы и вносим в конфигурационный файл в тегах <mainurl></mainurl>.

- Если переключатель страниц есть у блока со статьями, тогда конфигурационном файле в тегах <page></page> указываем 1, в противном случае 0.

- Переходим на любую статью в выбранном блоке и вносим его url-адрес в конфигурационный файл <arturl></arturl>.

- На странице статьи находим авторов, заголовок и текст статьи и вносим первую часть каждого элемента в соответствующие теги <authors></authors>, <title></title> и <content></content>.

Эти обязательные теги нужны для определения структуры веб-страниц и генерации xpath-запросов.

Оставшиеся три тега являются дополнительными, предназначенные либо для фильтрации скачиваемого контента: <searchudc></searchudc>, <searchauthor></searchauthor>; либо для определения директории сохранения выходных документов: <dir></dir>, по умолчанию project (Рисунок 15).

Рисунок 14 - Шаг 1 “Заполнение конфигурационного файла”, выбор желаемого ресурса.

Рисунок 15 - Шаг 1 “Заполнение конфигурационного файла”, ввод конфигурационных данных.

6.2 Шаг 2 “Запуск системы с использование конфигурационного файла“

Конфигурационный файл должен находится в одной директории с исполняемым файлом универсального веб-краулера.

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

Рисунок 16 - Шаг 2 “ Запуск системы с использование конфигурационного файла”.

6.3 Шаг 3 “Контроль качества выходных файлов“

После завершения работы системы выходные файлы будут находится в корневой директории проекта в папке с названием либо которое вы ввели, либо по умолчанию project (Рисунок 17).

Рисунок 17 - Выходные данные веб-краулера.

Заключение

В рамках данной квалификационной работы был проведен анализ существующих решений для автоматизации процесса скачивания полных данных научно-технических статей и публикаций.

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

Список использованных источников

1. Техническое задание на создание технологии автоматизированного скачивания. / Всероссийский институт научной и технической информации РАН.

2. UpToDown: DownloadDiscoverShare // URL: https://teleport-pro.ru.uptodown.com/windows (дата обращения 05.04.2018).

3. Top 50 open source web crawlers for data mining . // URL: http://bigdata-madesimple.com/top-50-open-source-web-crawlers-for-datamining/ (дата обращения: 06.04.2018).

4. Scrapy. An open source and collaborative framework for extracting the data you need from websites. // URL: https://scrapy.org/ (дата обращения 06.04.2018).

5. OpenSearchServer. The open-source enterprise class search engine software. // URL: http://www.opensearchserver.com/ (дата обращения 06.04.2018).

6. Crawlerj / Github - development open-source platform. // URL: https://github.com/yasserg/crawler4j (дата обращения 06.04.2018).

7. A.S. da Silva, E.A. Veloso, P.B. Golgher, B. Ribeiro-Neto, A.H.F. Laender and N. Ziviani, “CoBWeb for the Brazilian Web” / A.S. da Silva, E.A. Veloso, P.B. Golgher, B. Ribeiro-Neto, A.H.F. Laender and N. Ziviani // Federal University of Minas Gerais, Brazil, 1999.

8. Rashmi K.B., Vijaya Kumar T. and H.S. Guruprasad “Deep Web Crawler: Exploring and Re-ranking of Web Forms” / Rashmi K.B., Vijaya Kumar T. and H.S. Guruprasad // Internation Journal of Computer Applications, September 2016.

9. Scrapy. / Wikipedia - the free encyclopedia // URL: https://en.wikipedia.org/wiki/Scrapy (дата обращения 06.04.2018).

10. Технологическая база данных. Нормативное обеспечение. ISO-2709 Коммуникативный формат. / Всероссийский институт научной и технической информации РАН, 01.10.2017.

11. Количество дней (календарных/рабочих/выходных и праздничных) и нормы рабочего времени в 2018 году / КонсультантПлюс - надежная правовая поддержка. // URL: http://www.consultant.ru/document/cons_doc_LAW_218307/085080d76b08c01c7ef9c4476c96d58b1db516ea/ (дата обращения 15.04.2018).

Размещено на Allbest.ru

...

Подобные документы

  • Обоснование выбора языка программирования. Анализ входных и выходных документов. Логическая структура базы данных. Разработка алгоритма работы программы. Написание программного кода. Тестирование программного продукта. Стоимость программного продукта.

    дипломная работа [1008,9 K], добавлен 13.10.2013

  • Архитектура программного продукта и требования к платформе, обоснование выбора разработки. Закономерности и основные этапы алгоритмизации и программирования, а также отладка и тестирование продукта. Разработка и содержание руководства пользователя.

    дипломная работа [2,3 M], добавлен 19.01.2017

  • Обзор существующих решений и обоснование выбора языка программирования. Разработка структурной схемы, интерфейса программного продукта. Технические требования к оборудованию, тест программного продукта, руководство системного программиста и оператора.

    дипломная работа [2,0 M], добавлен 10.07.2012

  • Обоснование выбора языка, виды языков программирования. Характеристика программного продукта, постановка задачи, методы решения, программная реализация, программная документация. Руководство по использованию программы. Защита программного продукта.

    дипломная работа [1,6 M], добавлен 22.02.2010

  • Анализ существующих решений для составления расписания репетитора. Разработка архитектуры программного продукта. Выбор инструментальных средств. Проектирование реляционной базы данных. Определение методики тестирования. Реализация интерфейса пользователя.

    дипломная работа [411,7 K], добавлен 22.03.2018

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

    презентация [793,8 K], добавлен 15.11.2010

  • Характеристика программного продукта и стадий разработки. Расчет затрат на разработку и договорной цены, эксплуатационных расходов, связанных с использованием нового программного продукта. Оценка конкурентоспособности. Изучение, оценка рыночного спроса.

    курсовая работа [139,0 K], добавлен 22.09.2008

  • Общая характеристика, цели и функции создания, модульная структура и взаимосвязь элементов необходимого программного продукта, предъявляемые к нему требования. Комплект поставки и порядок инсталляции, запуск разработанного программного продукта.

    курсовая работа [32,0 K], добавлен 11.11.2013

  • Особенности алгоритмов, критерии качества. Создание и применение программного продукта на языке Delphi. Тип операционной системы. Внутренняя структура программного продукта. Руководство пользователя и программиста, расчет себестоимости и цены программы.

    дипломная работа [1,5 M], добавлен 12.06.2009

  • Требования к пользовательскому интерфейсу программного продукта. Выбор инструментальных средств разработки программы. Описание функциональной схемы, модульной структуры, структурной схемы. Технология разработки справочной системы программного продукта.

    дипломная работа [2,7 M], добавлен 12.05.2016

  • Реализация программного средства "Действия над матрицами". Разработка кода программного продукта на основе готовой спецификации на уровне модуля. Использование инструментальных средств на этапе отладки программного модуля. Выбор стратегии тестирования.

    отчет по практике [296,1 K], добавлен 19.04.2015

  • Анализ существующего программного обеспечения. Этапы создания проекта. Концептуальное, логическое и физическое проектирование базы данных. Структура программного продукта. Руководство программиста и оператора. Тестирование программного продукта.

    курсовая работа [586,4 K], добавлен 26.06.2015

  • Характеристика основных методов и средств моделирования мультиагентных систем. Ознакомление с результатами экспериментального тестирования и отладки программного комплекса. Рассмотрение методов оценки качества разработанного программного продукта.

    дипломная работа [3,1 M], добавлен 27.10.2017

  • Выбор инструментария программирования, технология создания электронного учебника. Установка программного продукта, инструкция пользователя по сопровождению. Набор тестов и тестирование, протокол ошибок. Расчёт цены и себестоимости программного продукта.

    курсовая работа [1,9 M], добавлен 09.12.2010

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

    отчет по практике [2,0 M], добавлен 28.11.2022

  • Этапы разработки и отладки приложения "Помощь почтальону". Составление сопроводительной документации. Выбор средств и методов программирования. Анализ проектных данных. Особенности создания базы данных, СУБД. Тестирование созданного программного продукта.

    контрольная работа [2,5 M], добавлен 17.12.2014

  • Создание программного продукта, представляющего моделирование на компьютере логнормального распределения, определение вероятностной оценки стоимости актива. Описание работы программного продукта. Работа с графиками, таблицами, математическими функциями.

    курсовая работа [742,7 K], добавлен 08.01.2009

  • Обоснование выбора языка программирования для создания интернет магазина. Построение виртуальных страниц. Определение затрат на создание Web-сайта. Расчет трудоемкости создания программного продукта. Использование HTML как языка разметки гипертекста.

    дипломная работа [1,2 M], добавлен 28.05.2016

  • Основные требования к составу и параметрам технических средства. Верификация программного продукта. Расширение функционала программы и его реализация. Отладка и тестирование программного продукта. Тестирование программы в граничных и реальных условиях.

    курсовая работа [1,3 M], добавлен 29.12.2014

  • Требования к функциям и задачам, выполняемым системой "Подбор кредита ОАО "Россельхозбанк". Проектирование архитектуры программного продукта. Структурная схема программного продукта. Описание компонент программного обеспечения. План менеджмента проекта.

    курсовая работа [684,0 K], добавлен 03.05.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.