Go-Readability Элегантное извлечение контента из веб-страниц
Это архивный репозиторий и может быть устаревшим.
Представьте ситуацию: вам нужно получить чистый текст статьи с веб-страницы, но вместо этого вы получаете мешанину из рекламы, комментариев, кнопок соцсетей и прочего мусора. Знакомая проблема? Именно для таких случаев создан пакет Go-Readability.
Что это за инструмент?
Go-Readability — это Go-реализация знаменитой библиотеки Readability.js от Mozilla. Пакет анализирует HTML-страницу и извлекает из неё только полезный контент, отсекая всё лишнее:
- Рекламные блоки
- Навигационные элементы
- Скрипты и фоновые изображения
- Комментарии и футеры
При этом сохраняются метаданные: заголовок, автор, дата публикации, превью-изображение и даже фавиконка сайта.
Кому это нужно?
- Разработчикам парсеров — для сбора контента с новостных сайтов и блогов
- Создателям RSS-агрегаторов — чтобы предоставлять пользователям чистый текст
- Авторам приложений для чтения — для отображения статей в удобном формате
- Аналитикам контента — при обработке большого количества веб-страниц
Как это работает на практике
Основные возможности
-
Автоматическое определение читабельного контента
article, err := readability.FromURL("https://example.com/article", 30*time.Second)Функция сама загрузит страницу и попытается найти основной текст.
-
Ручной парсинг HTML Если нужно обработать уже загруженную страницу:
resp, _ := http.Get(url) article, _ := readability.FromReader(resp.Body, parsedURL) -
Извлечение метаданных Пакет возвращает структуру с кучей полезной информации:
fmt.Printf("Title: %s\nAuthor: %s\nImage: %s\n", article.Title, article.Byline, article.Image) -
Командная строка Установите CLI-версию и используйте прямо в терминале:
go install github.com/go-shiori/go-readability/cmd/go-readability@latest go-readability https://example.com/article
Почему стоит попробовать
- Полная совместимость с оригинальной Readability.js от Mozilla
- Стабильная работа — проект активно поддерживается
- Гибкость — можно парсить как по URL, так и локальные файлы
- MIT-лицензия — свободное использование в коммерческих проектах
Когда это особенно полезно
- При создании сервиса сохранения статей «для чтения потом»
- В мобильных приложениях, где важно экономить трафик
- Для анализа текстового контента без визуального шума
- При миграции контента между платформами
Ограничения
Как и оригинальный Readability.js, пакет лучше всего работает с:
- Новостными статьями
- Блоговыми постами
- Длинными текстовыми материалами
На главных страницах сайтов и агрегаторах контента он может не найти читабельного текста.
Go-Readability — это один из тех инструментов, которые незаметно делают жизнь разработчика проще. Если вам нужно работать с веб-контентом на Go, обязательно попробуйте этот пакет. Он сэкономит вам часы работы над парсингом и очисткой HTML.
Для первого знакомства рекомендую клонировать репозиторий и запустить примеры из README — вы сразу увидите, насколько это может быть полезно в ваших проектах.
