Go-Readability Элегантное извлечение контента из веб-страниц

05 Dec, 2025

Это архивный репозиторий и может быть устаревшим.

941
🔱 99
👥 17

Представьте ситуацию: вам нужно получить чистый текст статьи с веб-страницы, но вместо этого вы получаете мешанину из рекламы, комментариев, кнопок соцсетей и прочего мусора. Знакомая проблема? Именно для таких случаев создан пакет Go-Readability.

Что это за инструмент?

Go-Readability — это Go-реализация знаменитой библиотеки Readability.js от Mozilla. Пакет анализирует HTML-страницу и извлекает из неё только полезный контент, отсекая всё лишнее:

  • Рекламные блоки
  • Навигационные элементы
  • Скрипты и фоновые изображения
  • Комментарии и футеры

При этом сохраняются метаданные: заголовок, автор, дата публикации, превью-изображение и даже фавиконка сайта.

Кому это нужно?

  1. Разработчикам парсеров — для сбора контента с новостных сайтов и блогов
  2. Создателям RSS-агрегаторов — чтобы предоставлять пользователям чистый текст
  3. Авторам приложений для чтения — для отображения статей в удобном формате
  4. Аналитикам контента — при обработке большого количества веб-страниц

Как это работает на практике

Основные возможности

  1. Автоматическое определение читабельного контента

    article, err := readability.FromURL("https://example.com/article", 30*time.Second)
    

    Функция сама загрузит страницу и попытается найти основной текст.

    Реклама
  2. Ручной парсинг HTML Если нужно обработать уже загруженную страницу:

    resp, _ := http.Get(url)
    article, _ := readability.FromReader(resp.Body, parsedURL)
    
  3. Извлечение метаданных Пакет возвращает структуру с кучей полезной информации:

    fmt.Printf("Title: %s\nAuthor: %s\nImage: %s\n", 
        article.Title, article.Byline, article.Image)
    
  4. Командная строка Установите CLI-версию и используйте прямо в терминале:

    go install github.com/go-shiori/go-readability/cmd/go-readability@latest
    go-readability https://example.com/article
    

Почему стоит попробовать

  • Полная совместимость с оригинальной Readability.js от Mozilla
  • Стабильная работа — проект активно поддерживается
  • Гибкость — можно парсить как по URL, так и локальные файлы
  • MIT-лицензия — свободное использование в коммерческих проектах

Когда это особенно полезно

  1. При создании сервиса сохранения статей «для чтения потом»
  2. В мобильных приложениях, где важно экономить трафик
  3. Для анализа текстового контента без визуального шума
  4. При миграции контента между платформами

Ограничения

Как и оригинальный Readability.js, пакет лучше всего работает с:

  • Новостными статьями
  • Блоговыми постами
  • Длинными текстовыми материалами

На главных страницах сайтов и агрегаторах контента он может не найти читабельного текста.

Go-Readability — это один из тех инструментов, которые незаметно делают жизнь разработчика проще. Если вам нужно работать с веб-контентом на Go, обязательно попробуйте этот пакет. Он сэкономит вам часы работы над парсингом и очисткой HTML.

Для первого знакомства рекомендую клонировать репозиторий и запустить примеры из README — вы сразу увидите, насколько это может быть полезно в ваших проектах.

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.