Простое руководство по парсингу HTML-страниц на Python с использованием BeautifulSoup

Напиши функцию на питоне для Парсинга html страницы

Чтобы распарсить HTML-страницу в Python, можно использовать библиотеку BeautifulSoup, которая является частью пакета bs4. Эта библиотека позволяет легко извлекать данные из HTML- и XML-документов.

Для начала, убедитесь, что у вас установлены необходимые библиотеки. Вы можете установить их с помощью pip:

pip install beautifulsoup4 requests

Вот пример функции для парсинга HTML-страницы:

import requests
from bs4 import BeautifulSoup

def parse_html(url):
    # Отправляем GET-запрос к указанному URL
    response = requests.get(url)

    # Проверяем, что запрос был успешным
    if response.status_code == 200:
        # Создаем объект BeautifulSoup для парсинга HTML
        soup = BeautifulSoup(response.content, 'html.parser')

        # Пример: Извлекаем все заголовки h1
        headings = soup.find_all('h1')

        # Возвращаем текст заголовков
        return [heading.get_text() for heading in headings]
    else:
        print(f"Ошибка при запросе страницы: {response.status_code}")
        return None

# Пример использования функции
url = 'https://example.com'
headings = parse_html(url)
print(headings)

Что делает эта функция:

  1. Отправляет GET-запрос: Использует библиотеку requests для отправки HTTP-запроса на заданный URL.
  2. Проверяет успешность ответа: Проверяет код состояния ответа, чтобы убедиться, что страница загружена успешно.
  3. ПарситHTML: Создаёт объект BeautifulSoup, который позволяет легко взаимодействовать с содержимым HTML.
  4. Извлекает данные: В примере функция извлекает все заголовки <h1> на странице и возвращает их в виде списка.

Важно:

  • Замените https://example.com на URL страницы, которую хотите распарсить.
  • Вы можете изменять логику внутри функции для извлечения других элементов или данных в зависимости от ваших нужд.

Если у вас есть какие-либо конкретные требования или вопросы, не стесняйтесь спрашивать!

Опубликовано 17.05.2025 13:09:58