Когда осуществляется запрос HTML-кода страницы, например, при помощи библиотеки requests, передается сырой HTML-текст, который достаточно сложно анализировать. Для упрощения работы с такими данными и используется BeautifulSoup.
Принцип работы
BeautifulSoup берет сырой HTML-текст и конвертирует его в удобную для работы структуру. Главная особенность – формируется дерево элементов, в котором каждый элемент страницы представляет собой отдельный объект. К примеру, есть следующий код:
<html> <head> <title>Мой сайт</title> </head> <body> <div class="content"> <p>Привет, мир!</p> </div> </body> </html>
Если передать данный код в BeautifulSoup, будет создано дерево объектов. Это позволяет перемещаться по такому дереву, получая доступ к нужным элементам. Пример работы:
from bs4 import BeautifulSoup html = """ <html> <head> <title>Мой сайт</title> </head> <body> <div class="content"> <p>Привет, мир!</p> </div> </body> </html> """ soup = BeautifulSoup(html, 'html.parser') title_tag = soup.title print(title_tag.text) # Выведет: Мой сайт