Пример готовой дипломной работы по предмету: Информационные технологии
Содержание
Содержание 3
Введение 5
1 Основные понятия и задачи парсинга 7
1.1 Основные сферы применения парсера 7
1.2 Синтаксический анализ (парсинг) 15
1.3 Использование семантических сетей в парсинге 17
1.4 Регулярные выражения 22
1.5 Синтаксис регулярных выражений 24
1.6 Инструмент анализа Html-страниц HtmlAgilityPack 28
2 Обзор программных средств реализации парсера 29
2.1 Среда разработки Visual Studio .NET 29
2.2 Язык программирования С# 37
2.3 Средства ввода-вывода и пространство имен System.IO 39
2.4 Сетевые возможности и использование Internet 44
2.5 Использование регулярных выражений в .NET 46
3 Программная реализация тематического (новостного) парсера 50
3.1 Постановка задачи на дипломное проектирование 50
3.2 Алгоритмы работы программы 51
3.2 Загрузка страницы 52
3.3 Обработка исключений 55
3.4 Извлечение данных с помощью регулярных выражений 58
3.5 Тестирование и результаты работы программы 63
4 Информационная безопасность 66
4.1 Законодательные вопросы информационной безопасности 66
4.2 Анализ структуры информационной системы организации. 70
4.3 Средства защиты и контрмеры по снижение рисков 71
5 Экономическая часть 76
5.1 Расход трудоемкости разработки программного продукта 76
5.2 Расход на оплату труда разработчика программы 78
5.3 Общие затраты на создание программного продукта 79
5.4 Целесообразность создания продукта 80
Выводы и рекомендации 81
Библиографический список 82
Приложение А. Исходный код программы
3.4 Извлечение данных с помощью регулярных выражений
Из спарсенной страницы новостей нужно с помощью регулярных вы-ражений выбрать только название новости и ссылку на нее. Парсить одни только url'и для данной задачи нет смысла, как и скачивать заранее все новости какого-либо раздела более подробно.
Как уже говорилось неоднократно выше, наибольшие усилия разработчика требуются по составлению правильных регулярных выражений. Регулярные выражения должны извлечь только нужные данные со страницы, не затрагивая остальных.
В разделе 1.5 был рассмотрен синтаксис регулярных выражений, а в 2.5 – их использование в .NET, поэтому подробно код, показанный на рис. 3.5 можно не рассматривать.
Рисунок 3.5 – Поиск соответствий шаблону
Как видно из рис. 3.5, в цикле проверяются строки на соответствие шаблону (match3) и найденные соответствия помещаются в файл.
Рассмотрим регулярное выражение для сайта Лента.ру:
Regex regex 3 = new Regex(@"<a\shref\S+(.)*</a>\n");
Как видно из приведенного выражения, здесь находится тег <a href> и парсится все, что находится между ним, и закрытием тега </a >. В таблицах 1 и 2 раздела 1.5 приведены значения данных метасимволов.
Структура регулярного выражения определяется способом представления кода на странице. Вот фрагмент кода главной страницы новостного сайта Лента.ру:
<div class="item">
<time class="g-time" datetime=" 19:23,
2. марта 2013" title="
2. марта 2013">19:23</time><a href="http://lenta.ru/news/2013/03/22/divers/">В Красном море утонули двое дайверов из России</a>
</div>
\S+ обозначает, что любой символ, кроме пробельных, может повто-ряться несколько раз. Далее любой символ, кроме перевода строки может повторяться 0 или более раз – (.)*. Затем следует завершающий тег </a> и перевод строки \n.
Схематично соответствие искомой строки шаблону представлено на рис. 3.6.
Рисунок 3.6 – Соответствие искомой строки шаблону
Результат обработки главной страницы приведен на рис.3.7.
Рисунок 3.7 – Результат обработки главной страницы lenta.ru
Почему так происходит? Например, код Ленты.ру (рис.3.8) отличается от кода РосБизнесКонсалтинг (рис.3.9).
Поэтому для каждого сайта нужно изменять регулярное выражение с учетом особенностей конкретного ресурса. Поэтому данная задача очень распространена во фрилансе.
Рисунок 3.8 – Лента.ру и ее исходный код
Рисунок 3.9 – РосБизнесКонсалтинг и его исходный код
Еще одна сложность – это ошибки исходного кода веб-страницы, до-пущенные ее разработчиками: незакрытые теги, неработающие или некор-ректные ссылки и т.д.
Также были написаны шаблоны поиска (регулярные выражения) для парсинга страницы крупного информационного агентства РосБизнесКонсалтинг и новостного портала Ростовской области 161.ru, схемы которых представлены на рис. 3.10 и рис.3.11 соответственно.
Рисунок 3. 10 – Шаблон для ленты новостей РосБизнесКонсалтинг
Для парсинга РосБизнесКонсалтинга сделано два шаблона – один, чтобы выбрать главные новости, другой – ленту новостей. Шаблон для главной страницы:
"<a href\S+http://pda.top.rbc.ru\S+\s\S+(.)*</a></p>\n"
а для ленты новостей приведен на рис. 3.11.
Как видно, они несколько различны, так как заголовки ссылок разделов немного отличается.
Еще более отличается регулярное выражение для парсинга новостей Ростовской области 161.ru, из-за различия в структуре ссылок.
Рисунок 3.11– Шаблон для новостей Ростовской области 161.ru
3.5 Тестирование и результаты работы программы
Результатом работы парсера являются извлеченные из заданных страниц данные, сохраненные в отдельные файлы.
Вначале программа тестируется при работе с регулярными выраже-ниями. Прежде чем окончательно остановится на виде регулярного выражения, его нужно опробовать на различных страницах данного источника, чтобы убедится, что вся нужная информация попадает в файл, а лишняя отсутствует. Основная работа по тестированию регулярных выражений ведется в режиме off-line с сохраненными страницами.
Выдержка из текста
Парсинг контента очень популярен, при этом он применяется как владельцами небольших и развивающихся сайтов, так и крупными компаниями в целях сбора контента, отслеживания тематических статей, баз для рерайтинга. Даже крупные компании, такие как Google, для новостей используют, в основном информацию со специализированных порталов информационных агентств – Лента.ру, РИА Новости, РБК, Утро.ру и т.д.
Хотя иногда некоторые сайты могут закрывать свой контент, именно парсинг новостей, согласно Статье 1259. «Объекты авторских прав» Граж-данского кодекса РФ, является вполне законным. Согласно ГК РФ, сообщения о событиях и фактах, имеющие исключительно информационный характер (сообщения о новостях дня, программы телепередач, расписания движения транспортных средств и тому подобное), не являются объектами авторских прав. Однако является правильным ссылаться на информационный источник. К тому же, многие сайты, публикующие новости, размещают у себя только анонс основных новостей, оставляя ссылки на подробную информацию в источнике.
Список использованной литературы
В основном использовались книги, а также интернет-ресурсы по программированию и использованию регулярных выражений в С#; а также статьи и ресурсы, где рассматривались задачи и особенности парсинга.
13. Ерохин А. Регулярные выражения в C# [Электронный ресурс]: Про-фессор WEB, 2012. URL: http://professorWeb.ru
14. Фридл Дж. Регулярные выражения. – 3-е изд., М.:Символ-Плюс,2008. -560 с.
15. Регулярные выражения в примерах и теории. [Электронный ресурс]: Блог доброго программиста C#, 2012. URL: http://foolsoft.ru
16. К.Уотсон, К. Нейгел, Я. Хю Педерсен, Д. Д. Рид, М. Скиннер, Э. Уайт. Visual C# 2008: базовый курс: изд-во "Диалектика", 2009.
17. Шилдгт Г. Полное руководство по С# — 2-e изд., М.:Вильямс, 2010, -1024 с.
18. Флёнов М.Е. Библия С# — 2-е изд., перераб.и доп. – СПб.,БХВ-Петербург, 2011. – 560 с.
19. Пространстве имен System.IO [Электронный ресурс]: Cyberforum. Фо-рум программистов и сис.админов, 2013. URL: http://www.cyberforum.ru
20. Эндрю Троелсен. Язык программирования C# 2010 и платформа .NET 4 – 2011.