← All Reviews
SOLID

adbar/trafilatura

Claim tested

trafilatura is a Python library and CLI tool that extracts clean main content from web pages and returns it as plain text or markdown. No API key, no Docker, no server — just pip install and three lines of Python. The claim holds — install is clean, URL fetch works, markdown output is LLM-ready, and boilerplate is correctly stripped.

Criteria Scorecard

CriterionScore
install_workstrue
claim_testabletrue
readme_accuratetrue
creator_notifiedfalse
errors_documentedtrue
claim_tested_clean_envtrue
verdict_matches_evidencetrue

Display this badge

RepoVerifier: SOLID
[![RepoVerifier: SOLID](https://repoverifier.dev/badges/solid.svg)](https://repoverifier.dev/reviews/adbar-trafilatura)
<a href="https://repoverifier.dev/reviews/adbar-trafilatura"><img src="https://repoverifier.dev/badges/solid.svg" alt="RepoVerifier: SOLID" height="20"></a>

Paste this in your repo’s README. Links back to the full review.

Environment

osmacOS M-series
userrepoverifiertest
dockerfalse
python3.13
api_keyfalse
install_methodpip3 install trafilatura

Full Review

What Was Tested



Python library mode — the documented path for content extraction.

Environment:
  • macOS M-series

  • Python 3.13

  • repoverifiertest user (clean environment)

  • pip3 install trafilatura — no virtual environment needed


Install



pip3 install trafilatura


Clean install. No errors. No dependency conflicts on Python 3.13.

What Worked



Plain text extraction:
import trafilatura
downloaded = trafilatura.fetch_url('https://en.wikipedia.org/wiki/Python_(programming_language)')
text = trafilatura.extract(downloaded)

Returned clean article content. Navigation, sidebars, and boilerplate correctly stripped.

Markdown output:
text = trafilatura.extract(downloaded, output_format='markdown')

Returned structured markdown with headers, bold text, and tables preserved —
directly usable as LLM context.

Real article extraction:
downloaded = trafilatura.fetch_url('https://paulgraham.com/writes.html')
text = trafilatura.extract(downloaded, output_format='markdown')
# LENGTH: 3121

Full article extracted cleanly. No noise.

Honest Findings



Returns None on paywalled pages: TechCrunch article pages returned None.
This is correct behavior — trafilatura does not bypass paywalls or render JavaScript.

Homepage extraction is minimal by design: TechCrunch homepage returned 517
characters — only content trafilatura was confident was "main content." Navigation
teasers and promotional blocks were correctly excluded. This is the intended behavior
for an LLM pipeline — you scrape article URLs, not homepages.

Works best on: open, text-based pages — blogs, documentation, Wikipedia,
research articles, product pages.

Does not work on: paywalled content, JavaScript-rendered SPAs, pages requiring
authentication.

What Was Not Tested



  • CLI mode (trafilatura -u "https://...")

  • Crawling mode (sitemap + batch processing)

  • Metadata extraction (trafilatura[metadata])

  • XML/CSV output formats


Verdict: SOLID



The core claim — extract main text from web pages into LLM-ready format —
works exactly as documented. Three-line install, three-line usage.
No API key, no server, no Docker. Runs natively on macOS with Python 3.13.
This review follows RepoVerifier Standard v1.0. Read the standard →