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

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

CC BY
589
82
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ВЕБ-СКРАПИНГ / PYTHON / BEAUTIFULSOUP / REQUESTS / SQLALCHEMY / WEB SCRAPING

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Бастрикина В.В.

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

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

DESIGNING WEB SCRAPER FOR OBTAINING DATA FROM SITES OF BOOK PUBLISHING HOUSES

Described process of web data scrapping. Proposed structure of a web scrapper for the implementation of data collection from websites of book publishers. Described technological architecture of the web scrapper.

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

УДК 004.43

ПРОЕКТИРОВАНИЕ ВЕБ-СКРАПЕРА ДЛЯ ПОЛУЧЕНИЯ ДАННЫХ С САЙТОВ КНИЖНЫХ ИЗДАТЕЛЬСТВ

В. В. Бастрикина Научный руководитель - А. Г. Зотин

Сибирский государственный университет науки и технологий имени академика М. Ф. Решетнева Российская Федерация, 660037, г. Красноярск, просп. им. газ. «Красноярский рабочий», 31

Е-mail: mk142008@mail.ru

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

Ключевые слова: веб-скрапинг, python, beautifulsoup, requests, SQLAlchemy.

DESIGNING WEB SCRAPER FOR OBTAINING DATA FROM SITES OF BOOK PUBLISHING HOUSES

V. V. Bastrikina Scientific Supervisor - A. G. Zotin

Reshetnev Siberian State University of Science and Technology 31, Krasnoyarsky Rabochy Av., Krasnoyarsk, 660037, Russian Federation E-mail: mk142008@mail.ru

Described process of web data scrapping. Proposed structure of a web scrapper for the implementation of data collection from websites of book publishers. Described technological architecture of the web scrapper.

Keywords: web scraping, python, beautifulsoup, requests, SQLAlchemy.

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

За последние годы появилась тенденция развивать информационно-справочные сервисы по востребованным направлениям. Одним из таких направлений, который нуждается в развитии является книжная отрасль. Существует немалое количество Интернет-ресурсов, на которых содержится полная информация о книжных товарах и их стоимость. Так, сведения можно получать не только от издательств, но и от интернет-магазинов, таких как Labirint, OZON, Bookvoed и т. д. Но поиск этой информации очень трудоемкий. книжная отрасль. В связи с этим возникла проблема создания такого сервиса, который бы позволял не только выбирать книги по интересам, а также узнавать в реальном времени о стоимости книг в интернет-магазинах и получать актуальную информацию с сайтов издательств [2].

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

Актуальные проблемы авиации и космонавтики - 2018. Том 2

ных данных (screen scraping), интеллектуальный анализ данных (data mining), получение веб-данных (web harvesting) [3].

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

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

- получение html-страницы с сайтов издательств;

- рендеринг html-страницы;

- парсинг html-страниц в удобный для дальнейшего анализа формат;

- запись полученных данных в базу данных.

Общая архитектура веб-скрапера представлена на рисунке.

Vilinl-ei^Biiiii

---"1

Scíuúfu] Socp

4

*_^

I Данные

□ДОопаху ^—

I Лмньк

(-

SQIrAlehcmy

^_J

Зшрос

t--'Ч

БД

ъ_J

Технологическая архитектура веб-скрапера

Общая архитектура веб-скрапера функционирует следующим образом. Сервер подает запрос в отдельном потоке на сервер сайта издательств через прокси-сервера. Список адресов прокси-серверов задан в программе. Получаем html-страницы сайта издательств с помощью пакета для языка программирования Python под названием Requestium [5]. Пакет Requestium, который

состоит из Requests и Selenium. Пакет Requests используется для создания html-запросов. Selenium - это инструмент для автоматизированного управления браузерами [6].

С помощью библиотеки Beatiful Soup 4 происходит поиск необходимых данных на странице по правилам, заданным в коде скрапера. Beatiful Soup 4 - это наиболее популярная библиотека для парсинга html-страниц, написанная на языке программирования Python [7]. После поиска полученные данные записываются в словари. Словари используется для структурированной записи данных.

Следующим в работу вступает SQLAlchemy, с помощью которой записываются полученные данные в БД. SQLAlchemy - это программное обеспечение с открытым исходным кодом для работы с базами данных [8]. Оно реализует технологию программирования ORM (Object-Relational Mapping), которая связывает базы данных с концепциями объектно-ориентированных языков программирования. SQLAlchemy позволяет описывать структуры баз данных и способы взаимодействия с ними прямо на языке Python. SQLAlchemy реализована в виде пакета для Python под лицензией MIT, а значит, возможно ее использование в проприетарном ПО.

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

Библиографические ссылки

1. Web Scraping с Golang и goQuery [Электронный ресурс]. URL: https://tehnojam.pro/ development/ (дата обращения: 12.02.2018).

2. Митчелл Р. Скрапинг веб-сайтов с помощью Python. СПб: ДМК Пресс, 2016. 280 с.

3. DeveloperWorks [Электронный ресурс]. URL: https://www.ibm.com/developerworks/ (дата обращения: 30.01.2018).

4. Web scraping с Node.js [Электронный ресурс]. URL: https://lpgenerator.ru/blog//web-scraping-s-nodejs/ (дата обращения: 29.01.2018).

5. Test.Py.Pi [Электронный ресурс]. URL: https://testpypi/requestium (дата обращения: 12.02.2018).

6. Python-3 [Электронный ресурс]. URL: http://python-3.ru/selenium (дата обращения: 12.02.2018).

7. Wiki.Python [Электронный ресурс]. URL: http://wiki.python.su/BeautifulSoup (дата обращения: 12.02.2018).

8. Wiki.Python [Электронный ресурс]. URL: http://wiki.python.su/SQLAlchemy (дата обращения: 12.02.2018).

© Бастрикина В. В., 2018

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