Консольное приложение для сбора информации о книгах с сайта books.toscrape.com.
Обходит все страницы каталога, собирает название, цену, рейтинг и наличие, сохраняет результат в JSON.
- Работа с
requests(GET-запросы, таймауты, обработка ошибок) - Парсинг HTML с
BeautifulSoup(поиск по тегам, классам, атрибутам) - Рекурсивный обход страниц (пагинация)
- Формирование URL с
urllib.parse.urljoin - Сохранение данных в JSON с обработкой ошибок
- Полноценная обработка исключений (сеть, элементы, файлы)
- Название книги
- Цена
- Рейтинг (One — Five)
- Наличие (In stock / Out of stock)
- Автоматическое определение ссылки «next»
- Рекурсивный переход до последней страницы
- Подсчёт номера страницы
- Структура:
{ "Страница N": { "Название": { "цена": "...", "рейтинг": "...", "наличие": "..." } } } - JSON с отступами и поддержкой Unicode
- Сеть:
ConnectionError,Timeout,HTTPError - Элементы: проверка на
Noneперед обращением - Рейтинг: безопасный доступ к атрибуту
class - Наличие: значение
'unknown', если элемент отсутствует - JSON:
TypeError,PermissionError,IOError - Общий
Exceptionдля непредвиденных ситуаций
Подождите идет парсинг...
Данные сохранены
{
"Страница 1": {
"A Light in the Attic": {
"цена": "£51.77",
"рейтинг": "Three",
"наличие": "In stock"
},
"Tipping the Velvet": {
"цена": "£53.74",
"рейтинг": "One",
"наличие": "In stock"
}
}
}- Делать реальные HTTP-запросы к сайтам
- Извлекать данные из HTML с помощью BeautifulSoup
- Строить рекурсивные обходы пагинации
- Обрабатывать все возможные ошибки (сеть, структура, файлы)
- Сохранять структурированные данные в JSON
- Писать код, готовый к использованию на фрилансе
12_web_parser/
├── main.py # код парсера
└── README.md # документация🚀 Как запустить
# Установить библиотеки (если не установлены)
pip install requests beautifulsoup4
# Запустить
python main.py✅ Проект готов