Веб-скрапинг с Beautiful Soup
Превратите настоящую веб-страницу в чистые данные Python
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 означает, что зависший сервер не заморозит вашу программу навсегда.