Перейти к содержанию

Начало урока

Веб-скрапинг с Beautiful Soup

Превратите настоящую веб-страницу в чистые данные Python

Главная идея: многие сайты показывают полезную информацию как обычный HTML, но никогда не предлагают для неё JSON-API. Веб-скрапинг — это загрузка такого HTML и извлечение из него нужных кусков в коде. Вы уже умеете получать JSON с помощью requests; здесь вы вместо этого получаете HTML и передаёте его в Beautiful Soup — библиотеку, которая превращает запутанную разметку в дерево, по которому можно искать и читать.
К концу вы сможете:
  • загрузить страницу через requests и построить из неё soup,
  • находить элементы через find, find_all и CSS-селекторы,
  • извлекать текст и атрибуты, например href,
  • собрать многострочную таблицу в список словарей,
  • скрапить ответственно: robots.txt, ограничение частоты и настоящий User-Agent.

1. Двухшаговый конвейер: загрузить, затем разобрать

Скрапинг — это всегда две задачи. Сначала вы загружаете сырой текст HTML по сети -> это библиотека requests из темы «Вызов веб-API через requests». Затем вы разбираете этот текст в структуру для поиска -> это Beautiful Soup. Держите эти два шага чётко раздельно в голове; они падают по разным причинам.

Сначала установите обе библиотеки в виртуальное окружение:

python -m pip install requests beautifulsoup4

Тогда минимальный полный скрапер выглядит так:

import requests
from bs4 import BeautifulSoup

url = "https://example.com/books"
response = requests.get(url, timeout=10)
response.raise_for_status()          # stop on 404 / 500 errors

soup = BeautifulSoup(response.text, "html.parser")
print(soup.title.text)               # Book Store

Обратите внимание на response.raise_for_status(): если сервер ответил 404 или 500, вы хотите остановиться сразу, а не подавать страницу ошибки в парсер. Передача timeout=10 означает, что зависший сервер не заморозит вашу программу навсегда.

Продолжите этот урок на YourAIZone

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

В полном уроке

  • Объяснение целиком
  • Разобранные примеры
  • Частые ошибки и как их избежать
  • Тестовые вопросы: 15
  • ИИ-репетитор, который отвечает на вопросы по теме
  • Отслеживание прогресса для ученика, родителей и учителя