Beautiful Soup — це модуль Python для аналізу HTML і XML документів. Він створює дерево аналізу для розібраних сторінок, яке можна використовувати для вилучення даних з HTML,[2] що часто використовують для вебскрапінгу.
Beautiful Soup був започаткований Леонардом Річардсоном, який і продовжує робити свій внесок [3], проект додатково підтримується завдяки Tidelift, платній підписці на підтримку проектів з відкритим кодом.[4]
Модуль доступний для Python 2.7 і Python 3.
#!/usr/bin/env python3
# Anchor extraction from HTML document
from bs4 import BeautifulSoup
from urllib.request import urlopen
with urlopen('https://en.wikipedia.org/wiki/Main_Page') as response:
soup = BeautifulSoup(response, 'html.parser')
for anchor in soup.find_all('a'):
print(anchor.get('href', '/'))
Переваги та недоліки парсерів
Ця таблиця підсумовує переваги та недоліки кожної бібліотеки аналізаторів [1]
Parser
|
Typical usage
|
Advantages
|
Disadvantages
|
Python’s html.parser
|
BeautifulSoup(markup, "html.parser")
|
- Moderately fast
- Гнучкий (Для Python 2.7.3 та 3.2.)
|
- Не такий швидкий, як lxml, не такий гнучкий, як html5lib
|
lxml’s HTML parser
|
BeautifulSoup(markup, "lxml")
|
|
|
lxml’s XML parser
|
BeautifulSoup(markup, "lxml-xml")
BeautifulSoup(markup, "xml")
|
- Дуже швидкий
- Єдиний парсер XML на даний момент
|
|
html5lib
|
BeautifulSoup(markup, "html5lib")
|
- Дуже гнучкий
- Парсер працює по аналогії з браузером
- Створює правильний HTML5
|
- Дуже повільний
- Зовнішня Python залежність
|
Реліз
Beautiful Soup 3 був офіційним релізом Beautiful Soup з травня 2006 року по березень 2012 року. Поточна версія Beautiful Soup 4.x. [Архівовано 16 березня 2022 у Wayback Machine.] Beautiful Soup 4 можна встановити за допомогою pip install beautifulsoup4
.
Посилання