JavaRush /Курсы /Python SELF /Парсинга HTML с помощью BeautifulSoup

Парсинга HTML с помощью BeautifulSoup

Python SELF
31 уровень , 2 лекция
Открыта

1. Загрузка и парсинг HTML-документов

Краткий обзор функциональности

Библиотека requests — это наш "посланник", который отправляется в путь за HTML-кодом веб-страниц. Она делает HTTP-запросы и доставляет страницы, словно доставщик пиццы, только без "Маргариты" и коробок.

BeautifulSoup, в свою очередь, — это наш "повар", который с легкостью разберет полученный HTML на ингредиенты (теги, атрибуты и текст), чтобы мы могли их использовать. Он поможет нам найти нужные элементы и сохранить всю важную информацию.

Использование библиотеки requests

Теперь мы готовы сделать наш первый HTTP-запрос и получить HTML-код страницы. Давайте для практики загрузим страницу example.com. Этот сайт — настоящий динозавр интернета и идеально подходит для начала.

Python

import requests

url = 'http://example.com'
response = requests.get(url)

# Проверим, всё ли в порядке
if response.status_code == 200:
    print("Страница успешно загружена!")
else:
    print("Что-то пошло не так. Код ошибки:", response.status_code)

Эта программа отправит запрос на URL и выведет успех или ошибку в зависимости от ответа. Если все хорошо, у нас в руках будет HTML-код страницы в виде текста.

Отслеживание кодов ошибок

Если вы будете автоматизировать парсинг, то часто будете сталкиваться с тем, что страница котороая должна загружаться, не загружается. Так что анализ кодов ошибок - это обязательная часть проекта, которые парсит больше чем пару страниц.

Все дело в том, что владельцы сайтов не очень любят когда парсят их данные. Во-первых, это нагрузка на сайт (когда парсятся тысячи страниц одновременно). Во-вторых, это их данные и они на них зарабатывают. Есть очень много способов противодействовать парсингу: CAPCHA, CloudFlare и т.п.

Для бизнеса идеально, когда ты можешь парсить всех своих конкурентов, а тебя никто не может. Такая себе холодная война.

Использование BeautifulSoup для парсинга HTML

Получив HTML-код, мы можем приступить к его изучению с помощью BeautifulSoup. Это как открыть книгу и прочитать её содержание:

Python

from bs4 import BeautifulSoup

# Передаем содержимое HTML-кода в BeautifulSoup
soup = BeautifulSoup(response.text, 'html.parser')

# Посмотрим, что внутри
print(soup.prettify())

Метод prettify() красиво форматирует HTML-код, чтобы вы могли его изучать. В следующее занятие, мы начнем копаться в этом HTML, как дети копаются в песочнице. И вернемся домой усталые, грязные, но счастливые :)

3. Практика: загрузка и анализ HTML

Чтобы закрепить понимание, давайте выполним практическое упражнение. Мы попытаемся извлечь заголовок и описание с подачи example.com. Для этого мы будем использовать наши знания HTML и новое знание BeautifulSoup.

Извлечение данных

Python

# Извлечение заголовка страницы
title = soup.title.string
print("Заголовок страницы:", title)

# Извлечение главного заголовка (h1)
main_heading = soup.h1.string
print("Главный заголовок:", main_heading)

# Извлечение текстового содержимого параграфа
paragraph = soup.find('p').text
print("Первый параграф:", paragraph)

В этом примере мы используем атрибуты title, h1, и метод find(), чтобы потянуть из страницы необходимые кусочки информации. Мы становимся кибердетективами, изучающими улики на месте преступления!

4. Типичные ошибки

Наверняка, в процессе работы с веб-скрейпингом вы столкнетесь с типичными ошибками, которые могут включать неверную обработку HTTP-запросов, некорректное извлечение данных или ошибки парсинга HTML. Разработка устойчивых и надежных скриптов требует терпения и практики. Например, всегда проверяйте код состояния (response.status_code), чтобы быть уверенными, что ваш запрос выполнен успешно. Некорректное использование методов find() и find_all() может привести к ошибкам, если вы не учтете структуру HTML-страниц. Всегда анализируйте HTML перед тем, как начинать парсинг.

Веб-скрейпинг имеет множество практических применений: от сбора данных для анализа до автоматического мониторинга цен на товары. Эти знания могут быть полезны на собеседованиях, где вас могут спросить о примерах проектного кода. В реальной практике, например, маркетологи используют скрейпинг для мониторинга цен конкурентов, а разработчики — для интеграции с внешними сайтами.

Вам пригодятся знания о веб-скрейпинге и при обработке информации для новостных агрегаторов и аналитических систем. Вы сможете автоматизировать рутинные задачи, создавая скрипты, которые сами собирают данные из различных источников. Давайте дальше развивать наше виртуальное приложение и ощущать себя настоящими мастерами веба!

Комментарии (1)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Slevin Уровень 64
24 июля 2025
В следующее занятие, мы начнем копаться в этом HTML, как дети копаются в песочнице. И вернемся домой усталые, грязные, но счастливые :)