СОДЕРЖАНИЕ
ВВЕДЕНИЕ 2
1. Теоретические основы извлечения информации из неструктурированных источников 4
1.1. Неструктурированная информация 4
1.2. Методы извлечения информации 4
1.3. Проблемы извлечения информации с веб-страницы 5
1.4. Основные подходы к извлечению данных с веб-страниц 7
1.4.1 Построения DOM дерева html документа 7
1.4.2 Использование регулярных выражений 10
1.4.3 Использование языка запросов XPath 14
1.5. Парсер сайта 16
1.6. Обзор существующих систем 17
1.6.1. Система Content Downloader 17
1.6.2. Система Datacol 18
1.6.3. система X-Parser 18
ВВЕДЕНИЕ
Сбор информации в интернете очень трудоемкая, рутинная, отнимающая много времени работа. Все данные, представленные в интернете, можно назвать неструктурированными, ввиду индивидуальности и специфичности архитектуры каждого ресурса. В основном, такие данные предоставляется в виде HTML страницы, то есть текстовые структуры и поэтому системы автоматизации извлечения информации из неструктурированных источников очень востребованы в современном мире. Такие системы позволяют повысить скорость извлечения информации в интернете.
Извлечение данных (извлечение информации) – это процесс получения структурированных данных из слабоструктурированных или неструктурированных источников. Классическим примером данного процесса является парсинг каталога товаров с сайтов интернет-магазинов.
На сегодняшний день существует множество различных систем способных автоматизировать процесс сбора информации со сторонних источников. Такие системы называются парсеры. По причине недостаточного финансирования или просто в следствии специфики предприятия может сложится ситуация, в которой использование имеющихся на рынке систем автоматизированного извлечения информации со сторонних ресурсов представляется нецелесообразным. В таких ситуациях проблему можно решить написанием своей системы автоматизированного извлечения информации, подходящей под конкретную задачу предприятия.
Целью данной выпускной квалификационной работы является проектирование и разработка программного робота для извлечения информации о товарах с веб-сайтов и создания собственной базы данных для коммерческой организации ООО «Справочно-информационный центр 003».
Для достижения поставленной цели, в ходе работы были поставлены и решены следующие задачи:
изучение теоретических основ извлечения информации из неструктурированных источников;
проведение обзора существующих систем автоматизированного извлечения информации из неструктурированных источников;
анализ требований к автоматизированной системе извлечения информации о товарах с веб-сайтов;
анализ ПО для разработки программной системы автоматизированного извлечения информации;
анализ инструментов для разработки программной системы автоматизированного извлечения информации на языке программирования PHP;
разработка собственной базы данных для коммерческой организации ООО «Справочно-информационный центр 003»;
проектирование и разработка программной системы автоматизированного сбора информации о товарах и наполнения базы данных.
Практическая значимость исследования заключается в том, что разработанную программу можно использовать в компании ООО «Справочно-информационный центр 003» для автоматизации процесса сбора информации о товарах.
Данная дипломная работа состоит из введения, трех глав, заключения, списка использованной литературы и приложений.
В первой главе описываются основные методы извлечения информации с интернет-страниц, анализируются проблемы извлечения информации, описываются основные подходы к извлечению информации и производится обзор существующих систем автоматизированного сбора информации с интернет-страниц.
Во второй главе анализируются функциональные требования к программной системе на основе требований заказчика, производится анализ программного обеспечения для разработки и тестирования программного обеспечения и анализируется инструменты языка программирования PHP, необходимые для разработки программы.
В третьей главе описывается структура разрабатываемой базы данных, а также этапы проектирования и разработки системы автоматического сбора информации.
Теоретические основы извлечения информации из неструктурированных источников
Неструктурированная информация
Неструктурированные данные (неструктурированная информация) — это информация, которая либо не имеет заранее определенной структуры данных, либо не организована в установленном порядке. Неструктурированные данные, как правило, представлены в форме текста, который может содержать такие данные, как даты, цифры и факты. Это затрудняет анализ данных, особенно в случае использования традиционных программ, предназначенных для работы со структурированными данными.
Примером неструктурированных данных могут служить книги, журналы, документы, метаданные, медицинские записи, аудио, видео, аналоговые данные, изображения, а также файлы, имеющие основой неструктурированный текст: сообщения электронной почты, веб-страницы, документы, созданные с помощью текстовых процессоров. Неструктурированная информация может храниться в форме структурированных объектов (например, в форме файлов или документов), которые сами по себе имеют структуру. При этом сочетание структурированных и неструктурированных данных в совокупности также называется неструктурированными данными. Например, в веб-страницах на языке HTML уже есть разметка, однако она пригодна лишь для отображения. В ней не содержится информация о значениях или функциях тех или иных размеченных элементов в виде, пригодном для автоматической обработки. Разметку средствами XHTML проще обрабатывать автоматически, но, обычно, в ней не содержится семантических значений выражений.
Методы извлечения информации
Все методы извлечения информации можно разделить на три основные категории:
Ручной метод – мониторинг интересующих страниц и перемещение необходимой информации в базу осуществляется специальным оператором. Достоинство данного подхода – высокое качество извлечения и низкое требование к квалификации оператора. К недостатку данного метода можно отнести высокую трудоемкость, общую незначительную скорость работы и человеческий фактор.
Полуавтоматический метод – к этой категории относятся решения, способные извлекать информацию после определенной настройки. Сюда можно отнести как предварительную разметку оператором элементов страницы в графическом пользовательском интерфейсе, так и более сложные случаи – например, составление регулярных выражений. К достоинству данного метода следует отнести, в идеале, такое же высокое качество извлечения, как и при ручном способе, но намного более высокую скорость работы.
Автоматический метод. Принципиальным отличием является полное отстранение человека от процесса извлечения данных – страницы анализируются, и информация извлекается автоматически без какого бы то ни было участия человека. Вряд ли существуют и в ближайшее время будут существовать универсальные технологии интеллектуального извлечения данных, но наиболее близкими к данному типу являются технологии поисковых гигантов и больших аналитических агентств.
Проблемы извлечения информации с веб-страницы
Извлечение информации с веб-страниц имеет ряд проблем:
проблема навигации;
проблема распознавания данных;
проблема поиска общей структуры данных;
проблема обеспечения единообразия;
проблема объединение данных.
Под навигацией подразумевается проблема поиска и анализа извлекаемой информации на странице веб-сайта. При этом нужно определить, вся ли интересующая информация находится на данной странице и выделить ссылки на недостающую информацию. Основной проблемой навигации является использование разработчиками современных технологий, а также просто нарушение негласных правил проектирования сайтов. Например, навигация посредством кода на JavaScript.Очевидно, что для перехода на другую страницу сайта потребуется исполнение кода, посредством которого осуществляется навигация, в то время как парсер, извлекающий данные, обычно намного проще браузера и не исполняет скриптов, так как к парсеру предъявляются определенные требования по быстродействию, что исключает необходимость исполнения каких-либо скриптов.
Загрузка контента посредствомAJAXи «бесконечная» прокрутка страницы: проблема, дополняющая собой предыдущую – к невозможности извлечь ссылку на следующую страницу из самой страницы сочетается с загрузкой контента по запросу с самой страницы. Проблема является, в большинстве фундаментальной и не решается без исполнения кода, осуществляющего показ необходимого контента.
Помимо этого, на практике также встречаются и другие проблемы. Например, сайт частично или целиком может быть сделан с использованием технологии Flash, есть ограничение на количество запросов в интервал времени или ограниченный доступ к страницам сайта.
Полностью решить данную проблему затруднительно, поэтому, чаще всего, приходят к получению результата, приемлемого для конкретного случая.
Распознавание данных и распознавание структуры – это задача заключается в необходимости определения участков веб-страницы, содержащих извлекаемую информацию, а также структуру извлекаемых данных.
Решение задачи заключается в поиске повторяющихся структур данных. В простейшем случае веб-страницу следует представить в виде дерева DOM-элементов и искать узлы, имеющие одинаковую структуру дочерних узлов. Существуют другие способы решения:
текстовый анализ – выделение элементов по их содержимому с учетом обрамляющей HTML-разметки;
анализ семантичностиhtml-разметки (например, ищется наибольшая таблица в теге);
анализ занимаемого места в DOM-дереве (ищется элемент, содержащий наибольшее количество дочерних элементов).
Обеспечение единообразия – следует обеспечить однородность извлекаемых данных, которые могут быть представлены на веб-странице с некоторой вариативностью атрибутов. Например, на веб-сайте дата опубликования новости может представляться в разных форматах: «Сегодня в 10:00», «3 часа назад» или «1 января 2017 год». Для решение данной проблемы, подобные атрибуты приводятся к общему формату (дата переводится в какой-либо абсолютный формат времени).
Проблема объединения данных заключается в следующем: извлекаемая конкретная единица информации может быть представлена на сайте неоднократно, поэтому по окончании выделения необходимо обеспечить удаление дубликатов.
После решения данных проблем информация с веб-страницы приводится в систематизированную форму, пригодную для импорта в базу данных.
Основные подходы к извлечению данных с веб-страниц
Есть несколько подходов к извлечению данных:
на основе построения DOM дерева html-документа;
на основе использования регулярных выражений;
на основе использования языка запросов Xpath;
Все представленные подходы к извлечению данных с веб-страниц более подробно рассмотрены далее.
Построения DOM дерева html документа
DOM (от англ. DocumentObjectModel – «объектная модель документа») – программный интерфейс, позволяющий программам и скриптам получить доступ к содержимому HTML, XHTML и XML-документов, а также изменять содержимое, структуру и оформление таких документов. В DOM-интерфейсе все содержимое страницы рассматривается как объект, у которого есть методы и свойства. С их помощью можно обратиться к любому отдельному элементу страницы, который также является объектом со своими свойствами, или создать новый.
Интерфейс DOMпредставляет все содержимое страницы в виде дерева, состоящего из узлов и связей между ними. Все узлы относительно друг друга могут быть родительскими и дочерними. Эти связи определяют структуру документа. При этом из корня дерева можно добраться до любого узла.
Согласно моделиDOM:
весь документ представляется узлом документа;
каждый HTMLтэг является узлом элемента;
текст внутри HTMLэлементов представляется текстовыми узлами;
каждому HTMLатрибуту соответствует узел атрибута.
Например, простейшая HTML-страница представлена на рисунке 1.
Рисунок 1 – HTMLкод страницы
В виде дерева эта страница может быть представлена, как нарисунке 2:
Рисунок 2 – Представление HTML-документа в виде древовидной структуры
Здесь каждый тэг представляет отдельный узел. При этом очевидно, что корневым элементом документа является тэг . Он содержит два дочерних элемента и , которые являются сестринскими по отношению друг к другу. Тэги и тоже имеют дочерние элементы. Тэг имеет дочерний элемент , а тэг имеет три дочерних элемента: и два тэга.
Чтобы воспользоваться преимуществом древовидной структуры, принятой в DOM для представления документа, следует использовать навигационные атрибуты, представленные в таблице 1.
Таблица 1- Навигационные атрибуты
Атрибут
Описание
firstChild
Возвращает первый узел-потомок
lastChild
Возвращает последний узел-потомок
previousSibling
Возвращает предыдущий соседний узел, имеющий с текущим одного родителя
nextSibling
Возвращает следующий соседний узел, имеющий с текущим одного родителя
parentNode
Возвращает родительский узел
ownerDocument
Возвращает корневой узел документа, содержащий текущей узел
nodeName
Возвращает имя узла
nodeValue
Возвращает значение узла в текстовом формате
nodeType
Возвращает тип узла в виде числа
Для извлечения данных с веб-страницы, данный подход имеет ряд достоинств и недостатков.
Достоинства этого подхода:
можно получить данные любого типа и любого уровня сложности;
зная расположение элемента, можно получить его значение, прописав путь к нему.
Недостатки такого подхода:
различные HTML / JavaScript движки по-разному генерируют DOM дерево, поэтому нужно привязываться к конкретному движку;
путь элемента может измениться, поэтому, как правило, такие парсеры рассчитаны на кратковременный период сбора данных;
DOM-путь может быть сложный и не всегда однозначный.
Использование регулярных выражений
Сейчас регулярные выражения используются многими текстовыми редакторами и утилитами для поиска и изменения текста на основе выбранных правил. Многие языки программирования уже поддерживают регулярные выражения для работы со строками. Например, Perl и Tcl имеют встроенный в их синтаксис механизм обработки регулярных выражений.
Регулярные выражения - это язык поиска и манипуляций с подстроками в тексте. Регулярное выражение, по сути, представляет собой набор правил для описания текстовых строк. Сами правила записываются в виде последовательности обычных символов и метасимволов, которая затем в качестве образца используется в операциях поиска и замены текста.
Метасимволы — это символы, имеющие в регулярном выражении специальное значение. В частности, используются для обозначения одиночного символа или группы символов, обозначают привязку к определенному месту строки, число возможных повторений отдельных элементов, возможность выбора из нескольких вариантов и т. д.
Регулярное выражение, подобно арифметическому выражению, строится с соблюдением определенных правил. В нем можно выделить операнды (элементы) и операции.
Простейшим регулярным выражением является регулярное выражение, состоящее из одного обычного символа. Обычный символ в регулярном выражении представляет самого себя. Соответственно, последовательность обычных символов представляет саму себя и не нуждается в дополнительной интерпретации. Для использования в операциях в качестве образца регулярное выражение заключается между двумя одинаковыми символами-ограничителями. Часто в качестве ограничителя используется символ косая черта «/».
Если в регулярном выражении какой-либо метасимвол требуется использовать в буквальном, а не специальном значении, его нужно экранировать, или маскировать, при помощи другого метасимвола — («\»).
Метасимвол «.» представляет любой одиночный символ, кроме символа новой строки. Так, образцу «/./» будет соответствовать любая непустая строка. Если в операциях сопоставления с образцом установлен флаг s, то метасимволу «.» соответствует также и символ новой строки.
Метасимвол [используется в конструкции [...] для представления любого одиночного символа из числа заключенных в скобки, то есть он представляет класс символов. Два символа, соединенные знаком минус, задают диапазон значений, например, [A-Za-z] задает все прописные и строчные буквы английского алфавита. Если первым символом в скобках является символ «^», вся конструкция обозначает любой символ, не входящий в число перечисленных в скобках. Например, [^0-9] обозначает все нецифровые символы.
Метасимволы «^» и «$» используются для задания привязки к определенному месту строки. Метасимвол ^ в качестве первого символа регулярного выражения обозначает начало строки. Метасимвол $ в качестве последнего символа регулярного выражения обозначает конец строки.
Метасимвол | можно рассматривать как символ операции, задающей выбор из нескольких вариантов (подобно логической операции ИЛИ). Например, образцу /а | b | с/ соответствует фрагмент текста, содержащий любой из символов: а, b, с. Если вариантами выбора являются одиночные символы, как в данном примере, то лучше использовать конструкцию, определяющую класс символов, в данном случае [abc].
Атомарные элементы, или атомы, — это простейшие элементы, из которых строится регулярное выражение. Это не обязательно одиночный символ.
Несколько примеров использования атомарных элементов в регулярных выражениях приведены на рисунке 3:
Рисунок 3 – примеры атомарных элементов
В первых двух примерах атомом является метасимвол «.». В третьем образце в качестве атома выступает конструкция [0-9], определяющая класс цифровых символов. В четвертом образце атом — это пара символов «\[«, включающая метасимвол «\», отменяющий специальное значение следующего за ним метасимвола «[». Полный список атомов мы приведем после изучения всех необходимых синтаксических конструкций.
Алгоритм, применяемый в операциях поиска и замены для обработки регулярных выражений, содержащих множители, является «жадным»: он пытается найти для образца, снабженного множителем, максимальный сопоставимый фрагмент текста.
Можно заставить алгоритм работать иначе, снабдив множитель «*» модификатором «?». В этом случае алгоритм из «жадного» превращается в «ленивый» и будет для образца, снабженного множителем, искать минимальный соответствующий фрагмент. «Ленивый» алгоритм для множителя «*?» начнет поиск в строке с пустого фрагмента, добавляя к нему по одному символу из строки до тех пор, пока не достигнет соответствия с образцом.
Символ «\», непосредственно предшествующий одному из метасимволов, отменяет специальное значение последнего. Если же символ \ непосредственно предшествует обычному символу, то, напротив, такая последовательность символов во многих случаях приобретает специальное значение. Подобного рода последовательности будем называть метапоследовательностями. Метапоследовательности в регулярном выражении служат, в основном, для представления отдельных символов, классов символов или определенного места в строке, дополняя и иногда дублируя функции метасимволов. Рассмотрим существующие метапоследовательности, представленные в таблице 2.
Таблица 2 – Метапоследовательности в регулярном выражении
Метапоследовательность
Значение
\а
При выводе производит звуковой сигнал
\А
Обозначает начало строки
\b
Обозначает границы слова. Под словом понимается последовательность символов из класса \w. Граница слова определяется как точка между символами из класса \w и символами из класса \W
\B
Обозначает не-границы слова
\cn
Управляющий символ, который генерируется при нажатии комбинации клавиш Ctrl+n
\d
Любой цифровой символ, то же, что и [0-9]
\D
Любой нецифровой символ, то же, что и [^0-9]
\W
Любой символ, не являющийся буквой, цифрой или символом подчеркивания
\Z
Обозначает конец строки
Регулярные выражения необходимо использовать только для извлечения данных, которые имеют строгий формат – электронные адреса, телефоны и т.д.
Использование языка запросов XPath
XPath – это язык запросов к элементам XML или xHTML документа. Также как SQL, xpath является декларативным языком запросов. Чтобы получить интересующие данные, необходимо всего лишь создать запрос, описывающий эти данные. XPath – это язык, разработанный специально для использования с XML и применяемый для поиска узлов и наборов узлов XML-документа в DOMмодели.
Как говорилось ранее, XML-документы представляют собой иерархию, или дерево узлов, в чем-то схожее с иерархией каталогов и файлов в файловой системе. Этом и объясняется сходство синтаксиса URL и XPath. В таблице3 приведено сравнение некоторых свойств.
Таблица 3 – Сравнение файловой системы и XPath
Файловаясистема (URL)
XPath
Иерархия каталогов и файлов.
Иерархия элементов и других узлов XML-документа.
Файлы на каждом из уровней имеют уникальные имена. URL всегда идентифицирует один файл.
Имена элементов на каждом уровне могут быть неуникальны. Шаблоны XPath соответствуют набору всех соответствующих элементов.
Путь вычисляется относительно конкретного каталога, именуемого текущим каталогом.
Путь вычисляется относительно конкретного узла, в запросе именуемого контекстом.
Выражения XPath позволяют легко найти определенный узел документа. Нужно просто включить в выражение порядковый номер в квадратных скобках. Этот номер отсчитывается от нуля (номер первого элемента - ноль).
Выражения XPath создаются с помощью операторов и специальных символов, приведенные в таблице 4
Таблица 4 – операторы и специальные символы XPath
Оператор
Описание
/
Оператор «дочерний элемент»: выбирает непосредственные дочерние элементы коллекции, указанной слева. Если этот оператор пути стоит в начале шаблона, будут выбраны дочерние элементы корневого узла.
Продолжение таблицы 4
//
Рекурсивный спуск; поиск заданного элемента на любой глубине. Если этот оператор пути стоит в начале шаблона, рекурсивный спуск будет вестись из корневого узла.
.
Указывает текущий контекст.
..
Родитель узла текущего контекста.
*
Символ подстановки; выбирает все элементы независимо от их имени.
@
Атрибут; префикс имени атрибута.
@*
Символ подстановки для атрибута; выбирает все атрибуты независимо от имени.
:
Разделитель пространства имени; отделяет префикс пространства имени от собственно имени элемента или атрибута.
( )
Группирует операции для явного задания порядка их выполнения.
[ ]
Применяет шаблон фильтра.
[ ]
Оператор Subscript; используется для индексирования коллекции.
+
Выполняет сложение.
-
Выполняет вычитание.
div
Выполняет деление с плавающей запятой.
*
Выполняет умножение.
mod
Возвращает остаток от усекающего деления.
Данный подход позволяет извлекать информацию только из XML документов и не подходит для HTML.
Парсер сайта
Парсинг сайта – последовательный синтаксический анализ информации, котораяразмещена на страницах сайта. Синтаксический анализ сайтов производится автоматизировано с помощью специальной программы, которая называется парсером. Целью парсинга сайтов является получение необходимой информации со страницы сайта. Параметры, по которым будут анализироваться страницы, задаются заранее. Парсер сайтов является удобным решением для автоматизации сбора информации. Если сравнивать его с человеком, то он имеет ряд преимуществ:
быстрее обойдет нужные веб-страницы;
безошибочно анализирует и отбирает необходимую информацию, расположенную на странице;
предоставит данные в необходимом виде.
Любой парсер интернет-страниц проходит три фазы:
получение исходного кода интернет-страницы;
анализ полученных данных и преобразование в нужный формат;
вывод данных.
В большинстве случаев достаточно обойтись стандартными методами загрузки интернет-страницы. Однако, не всегда это возможно. Например, некоторые сайты опознают ботов для парсинга и блокируют доступ. Другие –генерируют страницы на стороне клиента динамически, подгружают блоки через AJAX, требуют авторизоваться пользователя на сайте и т.д.
Получив исходный код интернет-страницы, необходимо получить из нее необходимую информацию. При анализе интернет-страницы могут возникнуть проблемы с сайтов, которые имеют невалидныйHTML-код. Как отмечалось ранее, для получения информации можно использовать регулярные выражения, но все же лучше и удобнее использовать специализированные библиотеки, которые есть в различных языках программирования.
И после обработки полученных данных, необходимо их сохранить в удобном виде. Например, в базе данных.
Обзор существующих систем
В настоящее время существует большое количество систем, которые позволяют автоматизировано собирать информацию с веб-сайтов.
Ниже представлен перечень наиболее популярных из них:
ContentDownloader
Datacol
X-Parser
Далее, рассмотрим каждую систему более подробно.
Система ContentDownloader
ContentDownloader - программа, которая применяется для парсинга контента с любого сайта. Парсер является универсальным и простым в использовании. ContentDownloader позволяет парсить любую информацию: файлы, картинки, ссылки, товары, контакты, XML-карты сайта, а также скрытые данные.
Основные возможности данной системы это:
обработка и импорт контента;
сканирование сайта;
редактирование CSV файлов;
планирование запуска проектов.
Система Datacol
Datacol — мощный и функциональный софт для автоматизации задач сбора данных. Этот универсальный парсер находит применение практически в любых наших интернет маркетингах.
Технология визуальной настройки сбора данных. В Datacol настройка парсинга производится буквально в несколько кликов мыши. Пользователю нужно всего лишь кликнуть на области данных, которую он хочет сохранять и Datacol сам подберет формулу парсинга.
Возможность экспорта сохраненных данных в файлы произвольно настраиваемого формата (CSV, TXT и т.д.), прямой записи в удаленную MySQL базу, а также прямого экспорта в такие CMS как WordPress и DLE.
Огромная гибкость Datacol, благодаря которой на базе функционала программы можно настраивать множество самых разнообразных парсеров, в том числе:
парсер контента по списку URL;
парсервыдачи поисковиков;
парсерSEO параметров сайтов с различных сервисов для их проверки;
парсерЯндекс Маркета;
парсерemail;
парсерконтента по ключевым словам.
система X-Parser
X-Parser - это автоматический парсер контента по списку ключевых слов. Алгоритмы парсера сделаны так, чтобы пользователю не нужно было производить какие-либо настройки, связанные с привязкой к шаблону сайтов-доноров. Все манипуляции с контентом парсер производит автоматически, и с достаточно высокой вероятностью находит непосредственно тело статьи среди всего контента страницы.
X-Parser предназначен для решения следующих задач:
Сбор отформатированного тематического контента для наполнения сайтов;
Поиск исходников для написания текстов (рерайтов/копирайтов).
X-Parser может работать с любыми поисковыми системами, парсить контент на любых языках. На выходе может давать контент, как в виде чистого текста без разметки, так и с сохранением базового форматирования (подходит для наполнения любых сайтов). Под базовым форматированием подразумевается сохранение абзацев, выделений, списков и т.п. Также, в зависимости от пользовательских настроек, парсер может сохранять изображения, найденные в теле статьи.
Все перечисленные системы для извлечения информации из неструктурированных источников являются коммерческими и их цена очень высока.
Сравнительный анализ существующих систем
Для проведения анализа систем автоматизированного извлечения информации с веб-сайтов, было выделено ряд критериев сравнения:
Кроссплатформенность;
Универсальность;
Выгрузка информации в базу данных;
Под кроссплатформенностью понимается способность системы работать более чем на одной операционной системы.
Под универсальностью понимается возможность системы извлекать информацию с любых веб-сайтов.
Выгрузка информации в базу данных. Данный критерий показывает возможность системы выгружать информацию, полученную в ходе парсинга интернет-страницы, в базу данных.
По данным критерием был проведен сравнительный анализ систем, которые рассматривались раннее. Результат сравнительного анализа приведен в таблице 5.
Таблица 5 – Сравнительный анализ систем
ContentDownloader
Datacol
X-Parser
Кроссплатформенность
Windows
Windows/Linux
Windows
Универсальность
+
-
+
Выгрузка информации в базу данных
+
+
-
В результате анализа приведенной таблицы можно сделать вывод:
Система X-Parserне поддерживает выгрузку информации в базу данных;
Системы: ContentDownloader, X-Parserмогут извлекать информация с любых сайтов;
Только система Datacolобладает кроссплатформенностью.
Разработка требований к системе автоматизированного сбора информации
Функциональные требования
На основе требований заказчика были сформулированы следующие функциональные требования к системе.
Система автоматизированного сбора информации из неструктурированных источников предназначена для извлечения информации о товарах с сайта «Яндекс.Маркет» и перенос полученной информации в собственную базу данных.
Программа должна обеспечивать возможность выполнения перечисленных ниже функций:
собирать информацию о товаре в зависимости от выбора пользователем категории товара;
заносить полученную информацию в базу данных;
производить проверку на наличие ошибок в ходе выполнения программы.
Входные данные программы должны быть организованы в специальной форме в виде списка с категориями товаров. Список категории товаров должен состоять из:
категория «Лекарственные препараты»;
категория «Медицинские товары»;
категория «Оптика».
На основе выбранной категории товаров пользователем, программа должна найти на сайте Яндекс.Маркет, страницы с каталогом товаров и извлечь информацию о товарах с данных страниц.
Выходные данные программы должны быть структурированы в базу данных. Структура базы данных должна состоять из 7 сущностей:
Группа товара;
Подгруппа товара;
Фирма;
Прайс товаров;
Город;
Тип города;
Цена товара;
Страна-производитель.
Выбор ПО для разработки программы
Для непосредственной работы программы необходимо, чтобы на сервере был установлен Apache, MySQLи интепретатор языка программированияPHP.
На сегодняшний день существует множество различных готовых локальных веб-серверов, которые уже содержат в себе набор дистрибутивов для разработки и тестированияпрограмм написанных на языке PHP. Среди наиболее известных можно выделить Denwer, Xamppи OpenServer.
Далее, рассмотрим каждый из этих инструментов более подробно.
Denwer
Джентльменский набор Web-разработчика — набор дистрибутивов (Apache, PHP, MySQL, Perl и т.д.) и программная оболочка, используемые Web-разработчиками для разработки сайтов на «домашней» (локальной) Windows-машине без необходимости выхода в Интернет. Главная особенность Денвера — удобство при удаленной работе сразу над несколькими независимыми проектами и возможность размещения на Flash-накопителе.
Базовый пакет содержит большинство необходимых программ и утилит:
Инсталлятор (поддерживается также инсталляция на flash-накопитель);
Apache, SSL, SSI, mod_rewrite, mod_php;
PHP5 с поддержкой GD, MySQL, sqLite;
MySQL5 с поддержкой транзакций;
Система управления виртуальными хостами, основанная на шаблонах. Чтобы создать новый хост, вам нужно лишь добавить директорию в каталог /home, править конфигурационные файлы не требуется. По умолчанию уже поддерживаются схемы именования директорий многих популярных хостеров; новые можно без труда добавить;
Система управления запуском и завершением всех компонентов Денвера;
phpMyAdmin — система управления MySQL через Web-интерфейс.
Эмулятор sendmail и SMTP-сервера (отладочная «заглушка» на localhost:25, складывающая приходящие письма в /tmp в формате .eml); поддерживается работа совместно с PHP, Perl, Parser и т.д.[8]
Denwerявляется одной из самой популярной платформы для веб-разработки. Главным его преимуществом является простота в установке, настройке и работе. Denwerвключает в себя широкий список программных модулей, используемых при веб-разработки. Еще одним преимуществом является, то что, весь дистрибутив весит всего несколько мегабайт. Также он давно используется веб-разработчиками и имеет обширную базу всех накопившихся знаний по его работе и хорошую поддержку.
Open Server
Портативный локальный WAMP/WNMP сервер, созданный специально для веб-разработчиков.
WAMP/WNMP — акроним, обозначающий набор (комплекс) серверного программного обеспечения, который широко используетсядля разработки программ и предоставления веб-сервисов.
WAMP/WNMP назван по первым буквам входящих в его состав компонентов:
Windows — операционная система от компании Microsoft;
Apache или Nginx — веб-сервер;
MySQL — СУБД;
PHP — язык программирования, используемый для создания веб-приложений.
Основными компонентами OpenServerявляется:
Управляющая программа Open Server;
Apache 2.2.21;
Nginx 1.0.11;
MySQL 5.1.61;
MySQL 5.5.20;
PostgreSQL 9.1.1;
PHP 5.2.17 (IMagick 2.2.1, Zend Optimizer 3.3.3, IonCube Loader 4.0.7, Memcache 2.2.4);
PHP 5.3.9 (IMagick 2.3.0, Xdebug 2.1.3, IonCube Loader 4.0.10, Memcache 2.2.6);
Perl 5.12.3.0;
SlimFTPd 3.181;
Fake Sendmail 32;
Memcached 1.2.6;
Adminer 3.3.3;
HeidiSQL r4034;
Webgrind 1.0;
PHPMyAdmin 3.4.9;
PHPPgAdmin 5.0.3.
Возможностиуправляющейпрограммы:
Незаметная работа в трееWindows;
Быстрыйстарт и остановка;
Автостарт сервера при запуске программы;
Включение/отключениезаписилогов;
Монтированиевиртуальногодиска;
Удобный просмотр логов всех компонентов;
Выбор HTTP, MySQL и PHP модулей в любом сочетании;
Доступ к доменам в один клик;
Быстрый доступ к шаблонам конфигурации модулей;
Мультиязычный интерфейс (Русский, Украинский, Белорусский, Английский);
К преимуществам данной программы можно отнести:
удобный графический интерфейс пользователя;
возможность просмотра логов;
большое количество функций для администрирования и управления компонентами.
К недостатком данной программы можно отнести:
необходимость самостоятельно проверять наличие новой версии;
большой вес дистрибутива.
Xampp
Xamppто кроссплатформенная сборка веб-сервера, которая содержит Apache, MySQL, интепретатор языка программирования PHP, язык программирования Perlи большое количество библиотек, которые позволяют запускать локально веб-сервер.
В полном пакете данной сборки содержатся:
Web....................... |