Узнайте, как использовать Beautiful Soup для парсинга страниц с помощью Python за 3 минуты

Ищете краткое руководство, чтобы начать парсинг веб-страниц с помощью Python’s Beautiful Soup? Вы пришли по адресу – читайте статью и начните работу.
Python user scraping the web using Beautiful Soup libraries
Rafael Levi
Rafael Levi | Senior Business Manager
05-Jan-2021

В этой статье мы обсудим:

Как работает веб-скрапинг?

Веб-скрапинг – это способ получения определенных данных с целевой веб-страницы. Когда вы исследуете страницу, написанный код отправляет запрос на сервер, где она находится. Код загружает ее, извлекая элементы, указанные в задании сканирования.

Допустим, нам нужны целевые данные в тегах заголовка H3. Мы напишем код для парсера, который будет искать именно эту информацию. Он будет работать в три этапа:

Этап 1: Отправка запроса на сервер для загрузки содержимого сайта.
Шаг 2: Изучение HTML страниц для поиска нужных тегов H3.
Шаг 3: Копирование текста внутри целевых тегов, создание выходных данных в формате, указанном ранее в коде.

Задачи веб-скрапинга можно выполнять на многих языках программирования с помощью различных библиотек, но именно библиотека Beautiful Soup в Python – наиболее востребованный и эффективный метод. Ниже мы рассмотрим основы парсинга на Python с Beautiful Soup.

Что такое Beautiful Soup?

Beautiful Soup является библиотекой Python, которая анализирует документы HTML и XML. Она создает дерево разбора для проанализированных страниц, которое позволяет извлекать данные из HTML. Кроме того, автоматически преобразует документ в Юникод. Поэтому вам не придется думать о кодировках. Этот инструмент помогает не только парсить, но и очищать данные. Beautiful Soup поддерживает парсер HTML библиотеки Python и несколько сторонних: lxml или hml5lib.

Подробнее о возможностях читайте здесь: Документация по Beautiful Soup.

Как установить Requests и Beautiful Soup

Вам нужен pip или другой установщик Python. По желанию можете использовать свою лабораторию jupyter. В этой статье мы используем pip, так как он более удобный. Откройте терминал или Jupyter Lab и напишите:
command line syntax for pip install beautifulsoup4 for Beautiful Soup Libraries in Python

Вы также можете установить парсер, который интерпретирует HTML, например, «html5lib». Для этого запустите в терминале код:command line for installing html5lib using pip install for Python
Установка Requestsscreenshot of syntax for pip install requests for python
Еще один способ – загрузить библиотеки вручную, перейдя по ссылке:

1: Requests

2: Hml5lib

3: Beautifulsoup4

Шаги для парсинга на Python с Requests и Beautiful Soup

Шаг 1: Вам нужно отправить HTTP-запрос на сервер страницы для парсинга. В ответ сервер отправит ее HTML-контент. Так как для запросов мы используем Python, нам нужна сторонняя HTTP-библиотека. Мы будем использовать Requests.

Начните с импорта библиотеки Requests и сделайте простой GET-запрос к URL. Мы выбрали https://www.brainyquote.com/topics/motivational-quotes, потому что он имеет простую структуру HTML и позволит легко продемонстрировать потенциал Beautiful Soup.

Если вы получаете ответ [200], это означает, что сайт ответил кодом ответа HTTP 200 OK и отправил нам HTML-содержимое страницы.

Давайте снова сделаем тот же запрос, но на этот раз сохраним результат в переменной с именем r и выведем его содержимое.
scraping using requests and saving the URL as a variable called r

На выходе должен быть весь HTML-код для этой страницы. Как видите, он не структурирован и Beautiful Soup поможет нам очистить его и получить нужные данные.

Шаг 2: Теперь, когда у нас есть HTML-контент, нам нужно проанализировать данные. Для этого мы будем использовать Beautiful Soup с парсером html5lib.importing beautiful soup from bs4 - command line syntaxНам нужно передать два значения в BeautifulSoup():

#1: HTML-строка с сайта; ‘r.content’.
#2: Какой парсер HTML использовать; ‘html5lib’

Шаг 3: На данном этапе нужно перейти на сайт, с которого собираете информацию. Откройте Devtools (F12) и перейдите на вкладку Elements. Нам нужен верхний слой таблицы.
nice chunk of scraped data using beautiful soup

command line syntax for configuring a table in beautiful soup using python

Давайте распечатаем таблицу, чтобы получить лучшее представление о том, что у нас есть, и воспользуемся .prettify().

command line for displaying the table in the console using prettify

Ваш вывод должен выглядеть примерно так:

Теперь ищем нужные вам данные. Для данного примера нам нужна только цитата и имя автора. Как видите, все эти данные находятся по адресу

Давайте пройдемся по всем экземплярам класса и получим цитаты в нашей таблице.
command line for looping through all the data to find the rows you need for the table

Теперь вам должны быть доступны только
в каждом экземпляре цикла. Вы можете проверить это, выполнив print(row) в цикле.

finding the alt-text inside the scraped data

Мы ищем информацию под ключом “img alt”, поэтому давайте создадим переменную quote и присвоим ей эти данные.

assigning data to the alt text

Как вы видите, я завернул его в оператор ‘try’. В этом случае, если в одной из строк не будет искомых данных, вы не получите ошибку, и цикл будет продолжен. Я также разделил результаты на ‘-‘. Как вы видели ранее, текст и имя автора разделяются с помощью знака ‘-‘ Давайте используем его, чтобы разделить эти два знака.
example of alt-attribute text being filled with the data providedВот и все, вы закончили. Вот как теперь должна выглядеть ваша цитата:

 

example of the data after it has applied the alt-text scrape

В конце этого процесса вы можете сохранить свои данные в файл, и ваш код должен выглядеть примерно так:
Screen shot of the final Python code and how it should look

Rafael Levi
Rafael Levi | Senior Business Manager

Rafael Levi is a senior business manager at Bright Data. He specializes in data collection automation and works closely with customers to help them achieve their goals. He firmly believes that the future of any e-business lay within data aggregation and automation.

Вас также может заинтересовать

ISP proxies Vs. Residential Proxies Understanding the difference once and for all

ISP прокси & Резидентные прокси: в чем разница

Эта статья создана специально для тех, кто задается вопросами: «Какая прокси-сеть лучше для увеличения одновременных запросов?», «Как сравнить затраты на сеть?», «Какими преимуществами обладает каждый тип сети?».
What is a proxy server & how does it work?

Что такое прокси-сервер и как он работает?

Эта статья охватывает все самое важное про прокси-серверы: особенности работы, актуальные типы, отличия от VPN. Изучите информацию, чтобы выбрать лучший инструмент для вашего бизнеса.
What is a reverse proxy

Что такое обратный прокси

Обратные прокси-серверы – более эффективный инструмент шифрования, который помогает достичь распределенной балансировки нагрузки, а также локального кэширования контента с гарантией его быстрой доставки потребителям данных. Изучите наше полное руководство по обратным прокси.
What is a private proxy

Что такое приватные прокси?

Частные прокси предлагают лучшую безопасность, повышенную конфиденциальность и коэффициент успеха 99,9% по более высокой цене. Общие прокси-серверы являются более экономичными вариантами для целевых сайтов с упрощенной архитектурой. Это руководство поможет вам понять различия между типами прокси и сделать правильный выбор для вашего бизнеса.