Телефон: 8-800-350-22-65
WhatsApp: 8-800-350-22-65
Telegram: sibac
Прием заявок круглосуточно
График работы офиса: с 9.00 до 18.00 Нск (5.00 - 14.00 Мск)

Статья опубликована в рамках: CXLV Международной научно-практической конференции «Научное сообщество студентов: МЕЖДИСЦИПЛИНАРНЫЕ ИССЛЕДОВАНИЯ» (Россия, г. Новосибирск, 18 июля 2022 г.)

Наука: Информационные технологии

Скачать книгу(-и): Сборник статей конференции

Библиографическое описание:
Хайруллин Б.Р., Лаврентьев К.И. СРАВНИТЕЛЬНЫЙ АНАЛИЗ БИБЛИОТЕК ДЛЯ ПАРСИНГА НА PYTHON // Научное сообщество студентов: МЕЖДИСЦИПЛИНАРНЫЕ ИССЛЕДОВАНИЯ: сб. ст. по мат. CXLV междунар. студ. науч.-практ. конф. № 14(145). URL: https://sibac.info/archive/meghdis/14(145).pdf (дата обращения: 24.11.2024)
Проголосовать за статью
Конференция завершена
Эта статья набрала 0 голосов
Дипломы участников
У данной статьи нет
дипломов

СРАВНИТЕЛЬНЫЙ АНАЛИЗ БИБЛИОТЕК ДЛЯ ПАРСИНГА НА PYTHON

Хайруллин Булат Рамилевич

студент Казанский национальный исследовательский технический университет им. А.Н. Туполева – КАИ,

РФ, г. Казань

Лаврентьев Константин Иванович

студент Казанский национальный исследовательский технический университет им. А.Н. Туполева – КАИ,

РФ, г. Казань

Гаптуллазянова Гульшат Ильдусовна

научный руководитель,

старший преподаватель кафедры автоматизированных систем обработки информации и управления, Казанский национальный исследовательский технический университет им. А.Н. Туполева – КАИ,

РФ, г. Казань

COMPARATIVE ANALYSIS OF LIBRARIES FOR PARSING IN PYTHON

 

Bulat Hayrullin

Student, Kazan National Research Technical University named after V.I. A.N. Tupolev - KAI,

Russia, Kazan

Konstantin Lavrentiev

Student, Kazan National Research Technical University named after V.I. A.N. Tupolev - KAI,

Russia, Kazan

Gulshat Gaptullazyanova

scientific Supervisor, senior lecturer, Department of Automated Information Processing and Control Systems, Kazan National Research technical university. A.N. Tupolev - KAI,

Russia, Kazan

 

АННОТАЦИЯ

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

ABSTRACT

The article provides a comparative analysis of libraries for parsing in the Python language. Several different libraries are considered, their functional aspects and capabilities are indicated. For each library, the advantages and disadvantages are highlighted, on the basis of which a comparative analysis is carried out.

 

Ключевые слова: парсинг, Python, Scrapy, BeautifulSoup, Selenium, сравнительный анализ.

Keywords: parsing, Python, Scrapy, BeautifulSoup, Selenium, benchmarking.

 

ВВЕДЕНИЕ

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

• BeautifulSoup;

• Selenium.

Далее идет обзор каждой из библиотек.

ОБЗОР БИБЛИОТЕК

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

Одним из особенностей является использование асинхронной сетевой структуры Twisted, что означает, что scrapy использует неблокирующий механизм при отправке запросов пользователям [1]. Однако минусом является то, что данный фреймворк не может воспроизвести JavaScript-код. То есть, при использовании на сайте AJAX-запросов, или страниц SPA, этот фреймворк не сможет получить данные.

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

Одним из инструментов для парсинга является библиотека BeautifulSoup. Эта библиотека помогает программисту работать с файлами формата HTML и XML, предлагая удобный интерфейс для перемещения, поиска и управления деревом данных в файлах этих типов. Но данная библиотека не может самостоятельно выполнять запросы, поэтому её необходимо использовать в связке с библиотекой для выполнения запросов, например Requests. Также, после загрузки данных, ей требуется внешний анализатор. Для анализа HTML используются следующие парсеры: html.parser (встроенное средство языка Python), lxml, html5lib.  На таблице 1 отображены плюсы и минусы каждого из этих парсеров [3].

Таблица 1.

Сравнение парсеров для работы с BeautifulSoup

Парсер

Преимущества

Недостатки

html.parser

Встроенное средство

Приличное быстродействие

Нестрогий

Медленнее lxml

Строже html5lib

lxml

Быстрый

Нестрогий

Внешняя зависимость языка С

Html5lib

Нестрогий

Разбирает HTML также, как браузер

Создаёт валидный HTML5

Медленный

Внешняя зависимость языка Python

 

Подводя итог для библиотеки BeautifulSoup, отметим все её преимущества и недостатки. К преимуществам относятся:

• Простота реализации;

• Понятная и полная документация (доступная также и на русском языке);

• Хорошая поддержка сообщества, помогающая на ранних этапах найти ошибки в реализации.

  Из недостатков можно отметить:

• Необходимость использования вместе с сторонними инструментами;

• Медленный при обработке большого количества документов.

Далее рассмотрим библиотеку Selenium. Selenium – это прежде всего инструмент для автоматизации тестирования веб-приложений, который имеет достаточно простой синтаксис, поддерживает написание автотестов на нескольких языках программирования, таких как Java, Ruby, C#, Python, Kotlin и другие. Эта среда разработана для автоматизации действий в браузере. Она позволяет запускать браузеры в headless режиме, например такие как Chrome, Chromium, Firefox. Благодаря этому он поддерживает работу с JavaScript-кодом, что выделяет его на фоне других средств разработки. Также он может находить элементы в дереве данных HTML по различным меткам, например по имени, классу, по css селекторам, по xpath и другим [2].

Подводя итог, отметим плюсы и минусы Selenium как инструмента для парсинга веб-сайтов.

К плюсам относится:

• Возможность работы с основными концепциями JavaScript (DOM);

• Обработка запросов AJAX, PJAX;

• Относительная быстрота работы.

Минусами данного проекта являются:

• Отсутствие возможности использования прокси «из коробки».

ЗАКЛЮЧЕНИЕ

В качестве итогов работы, составим сравнительную таблицу между библиотеками (таблица 2). Воспользуемся только теми данными, что были упомянуты в ходе анализа библиотек.

Таблица 2.

Сравнительный анализ библиотек BeautifulSoup и Selenium

Параметр

Scrapy

BeautifulSoup

Selenium

Универсальность языка

+

-

+

Простота реализации

+

+

-

Высокая скорость работы

+

-

+

Самостоятельная обработка запросов

+

-

+

Обработка JS-кода

-

-

+

Поддержка асинхронности

-

+

+

 

Список литературы:

  1. Twisted из первых рук / М. Задка [и др.] // пер. с анг. А. Н. Киселева. – М.: ДМК Пресс, 2020. – 338 с.
  2. Москаленко А.А., Лапонина О.Р., Сухомлин В.А. Разработка приложения веб-скрапинга с возможностями обхода блокировок // Современные информационные технологии и ИТ-образование — 2019. — Т. 15.
  3. Soup Documentation // Beautiful Soup 4.4.0 Documentation — [электронный ресурс] — Режим доступа. — URL: https://beautiful-soup-4.readthedocs.io/en/latest/ (дата обращения 22.06.2022)
Проголосовать за статью
Конференция завершена
Эта статья набрала 0 голосов
Дипломы участников
У данной статьи нет
дипломов

Оставить комментарий

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