Pythoner
Фотография
✈️ В Python BeautifulSoup4 (bs4) — это мощная библиотека для парсинга HTML и XML документов. Она предоставляет удобный интерфейс для навигации, поиска и модификации элементов в древовидной структуре документа. BeautifulSoup4 автоматически обрабатывает некорректный HTML, что делает её незаменимой для работы с реальными веб-страницами.
➡️ Применение BeautifulSoup4 широко распространено в веб-скрапинге, извлечении данных, анализе веб-контента и автоматизации задач, связанных с обработкой HTML и XML. Библиотека позволяет легко извлекать текст, ссылки, атрибуты и другие данные из веб-страниц.
➡️ Вот пример использования BeautifulSoup4 для парсинга HTML:
from bs4 import BeautifulSoup
html_content = """
<!DOCTYPE html>
<html lang="en">
<head>
<title>Example Page</title>
<meta name="description" content="Example description">
</head>
<body>
<h1>This is a heading</h1>
<p>This is some text in a paragraph.</p>
<a href="https://www.example.com">This is a link</a>
<ul>
<li>Item 1</li>
<li>Item 2</li>
</ul>
<div class="my-class">This is a div</div>
<p id="my-id">This is a paragraph with id </p>
</body>
</html>
"""
soup = BeautifulSoup(html_content, "html.parser") # "html.parser" - используемый парсер
# Навигация и поиск элементов:
title = soup.title.string # Получение текста заголовка
print("Title:", title)
description = soup.find("meta", attrs={"name": "description"})["content"]
print("Description:", description)
links = soup.find_all("a")
for link in links:
print("Link:", link["href"])
paragraphs = soup.find_all("p")
for p in paragraphs:
print("Paragraph:", p.text)
list_items = soup.find("ul").find_all("li")
for item in list_items:
print("List item:", item.text)
div_with_class = soup.find("div", class_="my-class")
print("Div with class:", div_with_class.text)
paragraph_with_id = soup.find("p", id="my-id")
print("Paragraph with id:", paragraph_with_id.text)
# Модификация HTML:
new_paragraph = soup.new_tag("p")
new_paragraph.string = "This is a new paragraph."
soup.body.append(new_paragraph)
print(soup.prettify()) # Вывод измененного HTML с отступами
⬆️ В этом примере демонстрируется создание объекта BeautifulSoup из HTML-строки, получение заголовка, поиск элементов по тегам, атрибутам и классам, извлечение текста и атрибутов элементов, а также добавление нового элемента в HTML-структуру. Используется парсер "html.parser", который встроен в Python. Для более сложных случаев можно использовать другие парсеры, такие как lxml или html5lib. Вывод soup.prettify() позволяет увидеть форматированный HTML-код после внесенных изменений.
🐍 Pythoner
40 · 1.9K ·