skillfed

newspaper3k

Simplified python article discovery & extraction.

newspaper3k v0.2.8 845.9K downloads/30d#4,918 on PyPI15,141
Permissive license MIT Active released

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 newspaper3k

uv

uv add newspaper3k

poetry

poetry add newspaper3k

Installing 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

Intended Audience :: DevelopersNatural Language :: EnglishProgramming Language :: Python :: 3

Tags

web scraping article extractionnews content parsinghtml to article textmultilingual article extractionweb page text miningnews site scrapingarticle metadata extraction
web-scrapingnlpmultilingual

More HTML packages

Further reading