Завершён
data
Children Book Dataset
Python-парсер, который собирает размеченный датасет детских книг — сделан, чтобы кормить классификатор GenreNeuro
В цифрах
0
Размеченных записей
0
Жанровых категорий
Проблема
Что я решала
GenreNeuro нужны чистые размеченные обучающие данные. Публичные каталоги детских книг есть, но данные грязные: непоследовательная кодировка, спецсимволы в названиях, нерегулярная HTML-разметка по страницам и жанровые метки в 200+ категорий — слишком детально для использования.
Мой подход
Как я делала
Обычные requests + BeautifulSoup4 — Scrapy избыточен для разовой задачи. Rate-limit 1 запрос в секунду — быть вежливым гостем. Явно обрабатывает кириллицу, чистит спецсимволы из названий и сворачивает 200+ исходных жанров в 6 обучающих категорий. Выдаёт чистый JSON, готовый к загрузке в TensorFlow. Архитектурно не интересный — в этом и суть. Скучную работу с данными надо сделать хорошо, чтобы ML-часть могла быть простой.
Выбор технологий
- requests + BeautifulSoup4— Для разового обхода ~20k страниц оверхед Scrapy не оправдан. Простые библиотеки = меньше движущихся частей = меньше отладки.
- 1 req/sec rate limit— Вежливый скрапинг. Хочется, чтобы владельцы сайта не банили IP или User-Agent в следующий раз.
Результат
Что получилось
9400+ размеченных книг в чистом JSON — обучающий набор, без которого GenreNeuro не получился бы. 6 нормализованных жанров вместо 200+ хаоса. Запускается заново, когда источник обновляется. Скучно, надёжно, готово.