Главная страница
Навигация по странице:

  • КУРСОВАЯ РАБОТА по дисциплине Языки программирования для статистической обработки данных Тема курсовой работы

  • ЗАДАНИЕ на выполнение курсовой работы по дисциплине

  • Тема работы

  • Перечень вопросов, подлежащих разработке, и обязательного графического материала

  • Срок представления к защите курсовой работы

  • Задание на курсовую работу выдал

  • Задание на курсовую работу получил

  • Содержание

  • Теоретическая часть

  • Понятие «веб-страница»

  • Рисунок 1.1 — пример простой XML страницы

  • Рисунок 1.2 — пример CSS-кода без использования классов

  • Рисунок 1.3 — замена атрибута style на класс-селектор

  • Рисунок 1.4 — создание CSS-класса

  • Рисунок 1.5 — пример идентификатора

  • Библиотека rvest

  • Рисунок 1.6 — установка библиотеки rvest

  • Инструмент разработчка в браузере

  • Практическая часть

  • абоба. Чурсин Н. А.. Курсовая работа по дисциплине Языки программирования для статистической обработки данных


    Скачать 255.01 Kb.
    НазваниеКурсовая работа по дисциплине Языки программирования для статистической обработки данных
    Анкорабоба
    Дата06.06.2022
    Размер255.01 Kb.
    Формат файлаdocx
    Имя файлаЧурсин Н. А..docx
    ТипКурсовая
    #571676






    МИНОБРНАУКИ РОССИИ

    Федеральное государственное бюджетное образовательное учреждение

    высшего образования

    «МИРЭА – Российский технологический университет»

    РТУ МИРЭА






    Институт информационных технологий




    Кафедра прикладной математики

    КУРСОВАЯ РАБОТА

    по дисциплине

    Языки программирования для статистической обработки данных

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

    Студент группы ИНБО-05-20

    Чурсин Никита Алексеевич










    ____________________

    (подпись студента)







    Руководитель курсовой работы

    Митина Ольга Алексеевна




    ____________________

    (подпись руководителя)







    Работа представлена к защите

    «___» ____________ 2022 г.







    Допущен к защите

    «___» ____________2022 г.


    Москва 2022






    МИНОБРНАУКИ РОССИИ

    Федеральное государственное бюджетное образовательное учреждение

    высшего образования

    «МИРЭА – Российский технологический университет»

    РТУ МИРЭА






    Институт информационных технологий

    Кафедра прикладной математики
    ЗАДАНИЕ

    на выполнение курсовой работы по дисциплине

    Языки программирования для статистической обработки данных

    Студент Чурсин Никита Алексеевич

    Группа ИНБО-05-20

    Тема работы: Разработка автоматического сборщика данных со специализированных источников, интеграция с хранилищем данных

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


    1. Создание алгоритма автоматической сборки данных;

    2. Реализация и тестирование автоматического сборщика средствами языка R;

    3. Синхронизация автоматического сборщика с базой данных.




    Срок представления к защите курсовой работы:

    до «___» __________2022 г.







    Задание на курсовую работу выдал

    ________________

    (Митина О. А.)




    «___» __________2022 г.

    Задание на курсовую работу получил

    ________________

    (Чурсин Н. А.)

    Москва 2022

    ОТЗЫВ

    на курсовую работу

    по дисциплине «Языки программирования для статистической обработки данных»

    Студент Чурсин Н. А. ИНБО-05-20

    (ФИО студента) (Группа)

    Характеристика курсовой работы

    Критерий

    Да

    Нет

    Не полностью

    1. Соответствие содержания курсовой работы указанной теме










    2. Соответствие курсовой работы заданию










    3. Соответствие рекомендациям по оформлению текста, таблиц, рисунков и пр.










    4. Полнота выполнения всех пунктов задания










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










    6. Отсутствие фактических грубых ошибок










    Замечаний:

    Рекомендуемая оценка:

    ___________ Митина О. А.

    Подпись руководителя ФИО руководителя

    Содержание

    Введение

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

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

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

    Цель данной курсовой работы — написание алгоритма для автоматической сборки данных посредством языка R и синхронизация этого алгоритма с базой данных.

    Основные задачи, решаемые в курсовой работе:

    • изучение методических пособий и научной литературы, связанной с web-scrapping’ом;

    • обучение оформлению официальных документов;

    • использование языка программирования R для написания автоматического сборщика данных — web-scrapper’а;

    • интеграция данных в единую базу.

    Теоретическая часть

    Что такое «web-scrapping»

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

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

    Понятие «веб-страница»

    Прежде чем мы займёмся web-scrapping’ом, нам необходимо разобраться с тем, что же такое «веб-страница», и как она устроена. С точки зрения пользователя, веб-страница содержит текст, изображения и ссылки, организованные таким образом, чтобы они были эстетически привлекательными и легко читаемыми. Но сама веб-страница написана на определённых языках кодирования, которые интерпретируются веб-браузерами в привычный нам вид.

    Важно отметить, что для web-scrapping’а мы будем взаимодействовать с фактическим содержимым веб-страницы: кодом до того, как он будет интерпретирован браузером.

    Разберём основные языки, предназначенные для создания веб страниц:

    • язык гипертекстовой разметки (HTML), используемый для форматирования структуры веб-страницы;

    • расширяемый язык разметки (XML), применяемый для создания логической структуры данных, их хранения и передачи в виде, удобном для компьютера, и для человека;

    • каскадные таблицы стилей (CSS), отвечающие за внешний вид веб-страницы;

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

    Для того, чтобы лучше понять структуру веб-страницы, подробнее рассмотрим HTML, XML и CSS.

    HTML

    В отличие от R, HTML не является языком программирования. Вместо этого он называется языком разметки, — он описывает содержимое и структуру веб-страницы. HTML организован с помощью тегов, окружённых символами «<» и «>». Разные теги выполняют разные функции, также теги могут вкладываться друг в друга. Вместе теги формируют веб-страницу, включают в себя её содержимое.

    Каждый тег имеет определённое имя, чтобы его можно было идентифицировать в HTML-документе. Теги могут быть парными и непарными, при этом парные теги формируют «древовидную» структуру страницы.

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

    XML

    Формат и структура XML менее предсказуемы, чем HTML. Хотя они и очень похожи, пользователи могут создавать свои собственные теги с помощью XML. Рассмотрим простейший пример, изображённый на рисунке 1.1.



    Рисунок 1.1 — пример простой XML страницы

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

    CSS

    В то время, как HTML и XML предоставляют содержимое и структуру веб-страницы, CSS предоставляет информацию о том, как должна быть оформлена веб-страница.

    Когда мы говорим о стиле в CSS, мы имеем в виду широкий спектр объектов. Стиль может относиться к цвету определённых элементов HTML или к их расположению. Перед изучением web-scrapping’а стоит разобраться в двух основных концепциях CSS, — это классы и идентификаторы.

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



    Рисунок 1.2 — пример CSS-кода без использования классов

    Атрибут «style» указывает на то, что мы пытаемся применить CSS-код к HTML-тегу «
    ». Внутри кавычек мы можем видеть пару ключ-значение «color:red». Мы повторили эту пару ключ-значение несколько раз, но если возникнет необходимость изменить цвет текста, то нам придётся менять каждую строку одну за другой.

    Вместо того, чтобы повторять атрибут «style» в каждом теге, мы можем заменить его на класс-селектор, как это указано на рисунке 1.3.



    Рисунок 1.3 — замена атрибута style на класс-селектор

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



    Рисунок 1.4 — создание CSS-класса

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

    Нас, конечно, интересует web-scrapping, а не создание веб-страницы. Но при просмотре веб-страниц нам часто нужно выбрать определённый класс HTML-тегов, поэтому необходимо понимать основы работы классов CSS.

    Точно так же нам часто может понадобиться собрать определённые данные, помеченные с помощью идентификатора. Идентификаторы CSS используются для присвоения элементу идентификационного номера или имени, при этом не меняя свойства элемента. Пример идентификатора приведён на рисунке 1.5.



    Рисунок 1.5 — пример идентификатора

    Если идентификатор прикреплён к HTML-тегу, то нам будет легче найти и идентифицировать этот тег, когда мы будем искать наши данные с помощью языка R.

    Библиотека rvest

    Библиотека rvest является одной из библиотек пакета tidyverse, который используется для анализа данных. Это обеспечивает полноценное взаимодействие с другими библиотеками из данного пакета. Библиотека «BeautifulSoup», созданная на основе языка программирования «Python», является прородителем библиотеки rvest.

    Чтобы использовать rvest библиотеку, нам сначала нужно установить её, а затем импротировать с помощью функции library(). Пример установки библиотеки указан на рисунке 1.6.



    Рисунок 1.6 — установка библиотеки rvest

    Библиотека rvest имеет особый синтаксис, унаследованный от пакета magrittr, а именно, pipes, которые мы встречали в dplyr и tidyverse: %>%.

    Раз у одного процесса есть вход, а у другого — выход, и их можно подменять, то логично предположить, что их можно соединить. Данный подход носит название «pipeline» (конвейер). Благодаря конвейеру можно соединять программы и протаскивать данные сквозь них, как сквозь цепочку функций, каждая из которых выступает в роли преобразователя или фильтра.

    Инструмент разработчка в браузере

    В большинстве современных браузеров есть инструмент, который позволяет пользователям напрямую просматривать исходный код веб-страницы. Данный инструмент называется «Developer tool» или инструмент разработчика.

    Мы можем найти инструмент разработчика, нажав правой кнопкой мыши на любой странице и в открывшемся меню выбрав вариант «Просмотр кода элемента». Откроется окно с кодом элемента, на котором был сделан клик.

    Большинство веб-страниц, которые мы сможем увидеть, будут чрезвычайно сложны, но инструменты разработчика облегчат нам выбор необходимых элементов веб-страницы, которые мы захотим обработать.

    Практическая часть





    написать администратору сайта