newspaper3k
Simplified python article discovery & extraction.
What it is and what it does
Newspaper3k is a Python library for discovering, downloading, and extracting structured content from web articles and news sites. It automates the process of fetching HTML from a URL, parsing the DOM to isolate article text, and extracting metadata like title, author, publish date, top image, and embedded videos. The library also performs natural language processing to identify keywords and generate summaries.
The package is designed around simplicity and speed, relying on lxml for fast HTML parsing and requests for HTTP operations. It supports multi-threaded article downloads and can work with news sources in multiple languages. Core use cases include building news aggregators, content curation pipelines, and automated article analysis workflows. Installation requires several system-level dependencies on Linux, and NLP features require downloading language corpora.
Use it for:
- Build a news aggregator that discovers and extracts articles from multiple news sites automatically.
- Extract article text and metadata from URLs for content curation or archival systems.
- Perform bulk text analysis on news articles across multiple languages for research or trend detection.
- Automate extraction of article images and videos for content republishing or media analysis.
- Generate article summaries and keyword extraction for search indexing or content recommendation.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Newspaper3k downloads and extracts article text, metadata, images, and keywords from web pages and news sites, with support for multiple languages and multi-threaded processing.
Yes, if you need reliable article extraction from web pages and news sites. The package is actively maintained, has low install friction, carries no security vulnerabilities, and is widely used (top 5000 on PyPI). The MIT license poses no restrictions. Install it if you're building a news aggregator, content pipeline, or article analysis tool; skip it if you only need simple HTML parsing without article-specific extraction logic.
Install
newspaper3k on PyPI
pip
pip install newspaper3kuv
uv add newspaper3kpoetry
poetry add newspaper3kInstalling newspaper3k
Before you install
Low install friction with a pure-Python wheel distribution. The package is actively maintained with recent commits as of 2026-08-09, though the latest release dates to 2018-09-28. Requires 13 runtime dependencies including lxml, beautifulsoup4, and nltk, which may need system libraries on Linux.
License in practice
MIT license permits commercial and private use with minimal restrictions; you may use, modify, and distribute the package freely provided you include the original license notice.
Quickstart
pip3 install newspaper3k
from newspaper import Article
url = 'http://example.com/article'
article = Article(url)
article.download()
article.parse()
print(article.title)
print(article.text)
On Debian/Ubuntu, system libraries are required for lxml and Pillow: libxml2-dev, libxslt-dev, libjpeg-dev, zlib1g-dev, libpng-dev. NLP features require downloading language corpora.
Verify before relying
- Whether all 13 runtime dependencies are required for basic article extraction or if some are optional for specific features.
- Performance characteristics and memory usage when processing large numbers of articles or very large HTML documents.
- Current maintenance status and whether the 2018-09-28 release is the final stable version or if newer development exists.
Package facts
| License | MIT (permissive) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 13 — tinysegmenter, beautifulsoup4, Pillow, PyYAML, cssselect, lxml, nltk, requests, feedparser, tldextract, feedfinder2, jieba3k, python-dateutil |
| Maintenance | actively maintained — 2,877 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 845,877/month — #4,918 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: newspaper3k-0.2.8-py3-none-any.whl
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
newspaper4kExtracts article text, metadata, and images…
permissive · top 15,000 on PyPI
goose3Extracts article text, metadata, images, and…
permissive · top 15,000 on PyPI
boilerpy3Extracts main article text and content from…
permissive · top 15,000 on PyPI
gnewsGNews searches Google News RSS feeds and…
permissive · top 15,000 on PyPI
readable-contentExtracts the main article content from web…
permissive · top 15,000 on PyPI
breadabilityExtracts the main readable content from HTML…
permissive · top 15,000 on PyPI
date-guesserExtracts publication dates from web pages by…
permissive · top 15,000 on PyPI
htmldateExtracts original and updated publication dates…
permissive · top 5,000 on PyPI
readabilipyExtracts article content from HTML using either…
permissive · top 5,000 on PyPI
readability-lxmlExtracts and cleans the main article text and…
permissive · top 5,000 on PyPI