readable-content
Collect actual content of any article, blog, news, etc.
What it is and what it does
readable-content is a lightweight HTML parser that extracts the main article text from web pages, filtering out navigation, sidebars, and other boilerplate. It accepts either a URL (which it fetches directly) or a pre-fetched HTML string, returning the core content as a string. The package has no runtime dependencies, making it simple to integrate into web scraping pipelines or content processing workflows.
The package is in Alpha status and has been abandoned since its single release on 2020-05-24. It was last tested against Python 3.7 and 3.8. While the MIT license is permissive, the lack of maintenance means you are responsible for any fixes, compatibility patches, or adaptation to changes in web page structures. It is suitable only for projects where you can tolerate or work around potential issues without upstream support.
Use it for:
- Extract article text from news sites for content aggregation or archival systems
- Parse blog posts or long-form content in web scraping pipelines where boilerplate removal is needed
- Pre-process HTML before feeding it to NLP or text analysis tools to isolate readable content
- Build a simple content extractor for personal research or offline reading tools
- Filter main text from pages fetched via requests or other HTTP libraries before further processing
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Extracts the main article content from web pages, handling both direct URL fetching and pre-fetched HTML strings to isolate readable text from web articles, blogs, and news sites.
No. The package is abandoned (no maintenance since 2020-05-24), marked Alpha, and offers no advantages over maintained alternatives. The lack of runtime dependencies is a minor plus, but cannot offset the risk of unaddressed bugs, compatibility drift, and no support for modern web structures. Install only if you have a legacy codebase already using it and cannot migrate.
Install
readable-content on PyPI
pip
pip install readable-contentuv
uv add readable-contentpoetry
poetry add readable-contentInstalling readable-content
Before you install
High install friction: the package is abandoned (last release 2020-05-24), marked Alpha status, and has received no maintenance for many years. No runtime dependencies, but the lack of ongoing support means bugs and compatibility issues are unlikely to be addressed.
License in practice
MIT license (permissive) places no restrictions on use, modification, or distribution in your own projects, but the abandoned status means you accept all maintenance risk yourself.
Quickstart
from readable_content.parser import ContentParser
parser = ContentParser("https://example.com/article")
content = parser.get_content()
print(content)
# Or with pre-fetched HTML:
parser = ContentParser("https://example.com/article", html_content)
content = parser.get_content()
Package classifiers list Python 3.7 and 3.8 only; compatibility with newer versions is unverified.
Verify before relying
- Whether the content extraction logic handles modern web page structures and JavaScript-rendered content
- Compatibility with Python versions beyond 3.7 and 3.8 despite those being the only listed classifiers
- How the parser behaves with sites that block automated access or require specific headers
Package facts
| License | MIT license (permissive) |
| Python support | not specified |
| Install friction | high — source build required |
| Runtime dependencies | none |
| Maintenance | abandoned — 2,273 days since the last release |
| First released | |
| Downloads | 84,037/month — #14,034 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: readable-content-0.1.2.tar.gz
Tags
More HTML packages
MarkupSafe provides a text object that escapes…
permissive · top 100 on PyPI
Jinja2Jinja2 is a templating engine that renders…
permissive · top 100 on PyPI
beautifulsoup4Beautiful Soup parses HTML and XML documents…
permissive · top 100 on PyPI
lxmllxml provides Python bindings to libxml2 and…
permissive · top 1,000 on PyPI
docutilsDocutils converts plaintext documentation in…
unclear · top 1,000 on PyPI
MarkdownConverts Markdown text to HTML using a Python…
permissive · top 1,000 on PyPI
date-guesserExtracts publication dates from web pages by…
permissive · top 15,000 on PyPI
boilerpy3Extracts main article text and content from…
permissive · top 15,000 on PyPI
w3libw3lib provides utility functions for common web…
permissive · top 5,000 on PyPI
trafilaturaTrafilatura extracts main text, metadata, and…
permissive · top 5,000 on PyPI
newspaper4kExtracts article text, metadata, and images…
permissive · top 15,000 on PyPI
goose3Extracts article text, metadata, images, and…
permissive · top 15,000 on PyPI
readability-lxmlExtracts and cleans the main article text and…
permissive · top 5,000 on PyPI
readabilipyExtracts article content from HTML using either…
permissive · top 5,000 on PyPI
ScrapyScrapy is a web scraping framework that…
permissive · top 5,000 on PyPI
htmldateExtracts original and updated publication dates…
permissive · top 5,000 on PyPI