Discover / Data & Research

Trafilatura

by adbarPython

Python library for extracting clean text and metadata from web pages.

Toolstable

Maturity: stable because 7y old, v2.1.0 released 57d ago. Derived from release and commit history, not a rating.

Stars
6.4k
Forks
400
Downloads / mo
12.8M
Last commit
2026-07-31
License
Apache-2.0
Open issues
66

Market and trust evidence

Edition not yet matched

No exact skills.sh identity match is available for this repository. Repository adoption and freshness remain visible above; install momentum is not inferred.

Trust analysis is a screening signal, not a security warranty. Read the ranking and trust methodology.

In practice

Written by AI from this repository’s README · high confidence

Raw HTML carries headers, footers and boilerplate that pollute any text corpus built from crawled pages.

Use it when

Use it when building a text corpus or RAG source and you need clean main content plus metadata at scale.

Not the right pick when

Not a browser, so pages that only render content through client side JavaScript are outside its scope.

Capabilities

  • sitemap and feed support for TXT, XML, ATOM, JSON and RSS
  • smart crawling with URL filtering and deduplication
  • main text extraction using jusText and readability style algorithms
  • metadata extraction of title, author, date, site name and tags
  • output as TXT, Markdown, CSV, JSON, HTML, XML and XML-TEI
  • parallel processing of live URLs and stored HTML

Cost: Free and open source

Install

Derived from the published package name in the repository, not from a model.

Video walkthroughs

Third-party YouTube uploads matched to this tool by title, channel and repository name on 2026-08-03. Not made, reviewed or endorsed by SkillPilot. View counts and publish months are as of the match date and the month is approximate. Nothing loads from YouTube until you press play.

What the repository ships

Has testsHas docsCI configured

Detected from the actual files in the repository root.

Latest release v2.1.0

Published 2026-06-07

Major changes:

  • Dependencies updated, lxml in particular (with minimal changes in the code)
  • Faster XPath performance using XSLT extensions by @Honesty-of-the-Cavernous-Tissue (#793)
  • More deprecation warnings
  • More robust code

Fixes:

  • Fix node pruning raising an AttributeError in certain cases by @PLPeeters (#761)
  • Refine img src url and fix table extraction bugs by @unsleepy22 (#762)
  • Fix eager doctype regex matching by @UVMvmfee (#764)
  • Add extract_with_metadata method and ut by @unsleepy22 (#765)
  • More robust table extraction by @unsleepy22 (#767)
  • Detect code in pre-tag using indicators and fix code formatting issues by @steineggerroland (#776)
  • Fix tokenizer not stripping "Ideographic Full Stop" by @reinoldus (#783)
  • Improve spacing in item, cell and code blocks by @unsleepy22 (#772)
  • Changed code to handle potential empty string by @seanswyi (#790)
  • Optimize PUNCT_TBL creation by @deedy5 (#791)
  • Replace Nones in code blocks by @crackcomm in (#797)
  • Propagate no_fallback setting to fast argument by @unsleepy22 (#800)
  • Fix bug #807 by @arcombe012 (#808)
  • Added support to meta name image by @felipehertzer (#809)
  • Preserve images when links are included by @rmarchei (#841)
  • Clean fencedframe element during extraction by @eyupcanakman (#847)
  • Add all Justext languages known to the detector with @cikay (#810)
  • Safer lxml element init by @adbar (#856)
  • Preserve links in tables when --links is enabled by @rmarchei (#858)

Maintenance:

  • Update docs by @adbar (#773)
  • Update README: fix /dependents links by @vbarbaresi (#785)
  • Update CI pipeline by @adbar (#801)
  • Update setup, fix code and tests by @adbar (#853)
  • Review consistency of code, tests and docs by @adbar (#855)
  • Add tests to prevent metadata bugs by @adbar (#857)
  • Tests: check consistency by @adbar (#859)
  • Modernize code base by @adbar (#860)
  • Format the code with ruff by @adbar (#861)

Tags

README

Trafilatura: Discover and Extract Text Data on the Web

<br/>

<img alt="Trafilatura Logo" src="https://raw.githubusercontent.com/adbar/trafilatura/master/docs/trafilatura-logo.png" align="center" width="60%"/>

<br/>

Python package

Python versions

Documentation Status

Code Coverage

Downloads

Reference DOI: 10.18653/v1/2021.acl-demo.15

<br/>

<img alt="Demo as GIF image" src="https://raw.githubusercontent.com/adbar/trafilatura/master/docs/trafilatura-demo.gif" align="center" width="80%"/>

<br/>

Introduction

Trafilatura is a cutting-edge Python package and command-line tool

designed to **gather text on the Web and simplify the process of turning

raw HTML into structured, meaningful data**. It includes all necessary

discovery and text processing components to perform **web crawling,

downloads, scraping, and extraction** of main texts, metadata and

comments. It aims at staying handy and modular: no database is

required, the output can be converted to commonly used formats.

Going from HTML bulk to essential parts can alleviate many problems

related to text quality, by focusing on the actual content,

avoiding the noise caused by recurring elements like headers and footers

and by making sense of the data and metadata with selected information.

The extractor strikes a balance between limiting noise (precision) and

including all valid parts (recall). It is robust and reasonably fast.

Trafilatura is widely used

and integrated into thousands of projects

by companies like HuggingFace, IBM, and Microsoft Research as well as institutions like

the Allen Institute, Stanford, the Tokyo Institute of Technology, and

the University of Munich.

Features

  • Advanced web crawling and text discovery:
  • Support for sitemaps (TXT, XML) and feeds (ATOM, JSON, RSS)
  • Smart crawling and URL management (filtering and deduplication)
  • Parallel processing of online and offline input:
  • Live URLs, efficient and polite processing of download queues
  • Previously downloaded HTML files and parsed HTML trees
  • Robust and configurable extraction of key elements:
  • Main text (common patterns and generic algorithms like jusText and readability)
  • Metadata (title, author, date, site name, categories and tags)
  • Formatting and structure: paragraphs, titles, lists, quotes, code, line breaks, in-line text formatting
  • Optional elements: comments, links, images, tables
  • Multiple output formats:
  • TXT and Markdown
  • CSV
  • JSON
  • HTML, XML and XML-TEI
  • Optional add-ons:
  • Language detection on extracted content
  • Speed optimizations
  • Actively maintained with support from the open-source community:
  • Regular updates, feature additions, and optimizations
  • Comprehensive documentation

Evaluation and alternatives

Trafilatura consistently outperforms other open-source libraries in text

extraction benchmarks, showcasing its efficiency and accuracy in

extracting web content. The extractor tries to strike a balance between

limiting noise and including all valid parts.

For more information see the benchmark section

and the evaluation readme

to run the evaluation with the latest data and packages.

Other evaluations:

(Lejeune & Barbaresi 2020)

(Bevendorff et al. 2023)

Usage and documentation

Getting started with Trafilatura

is straightforward. For more information and detailed guides, visit

Trafilatura's documentation:

On the command-line,

With Python,

With R

Youtube playlist with video tutorials in several languages:

License

This package is distributed under the Apache 2.0 license.

Versions prior to v1.8.0 are under GPLv3+ license.

Contributing

Contributions of all kinds are welcome. Visit the [Contributing

page](https://github.com/adbar/trafilatura/blob/master/CONTRIBUTING.md)

for more information. Bug reports can be filed on the [dedicated issue

page](https://github.com/adbar/trafilatura/issues).

Many thanks to the

contributors

who extended the docs or submitted bug reports, features and bugfixes!

Context

This work started as a PhD project at the crossroads of linguistics and

NLP, this expertise has been instrumental in shaping Trafilatura over

the years. Initially launched to create text databases for research purposes

at the Berlin-Brandenburg Academy of Sciences (DWDS and ZDL units),

this package continues to be maintained but its future depends on community support.

**If you value this software or depend on it for your product, consider

sponsoring it and contributing to its codebase**. Your support

on GitHub or ko-fi.com

will help maintain and enhance this popular package.

Trafilatura is an Italian word for [wire

drawing](https://en.wikipedia.org/wiki/Wire_drawing) symbolizing the

refinement and conversion process. It is also the way shapes of pasta

are formed.

Author

Reach out via ia the software repository or the [contact

page](https://adrien.barbaresi.eu/) for inquiries, collaborations, or

feedback. See also social networks for the latest updates.

  • Barbaresi, A. [Trafilatura: A Web Scraping Library and Command-Line

Tool for Text Discovery and

Extraction](https://aclanthology.org/2021.acl-demo.15/), Proceedings

of ACL/IJCNLP 2021: System Demonstrations, 2021, p. 122-131.

  • Barbaresi, A. "[Generic Web Content Extraction with Open-Source

Software](https://hal.archives-ouvertes.fr/hal-02447264/document)",

Proceedings of KONVENS 2019, Kaleidoscope Abstracts, 2019.

  • Barbaresi, A. "[Efficient construction of metadata-enhanced web

corpora](https://hal.archives-ouvertes.fr/hal-01371704v2/document)",

Proceedings of the [10th Web as Corpus Workshop

(WAC-X)](https://www.sigwac.org.uk/wiki/WAC-X), 2016.

Citing Trafilatura

Trafilatura is widely used in the academic domain, chiefly for data

acquisition. Here is how to cite it:

Reference DOI: 10.18653/v1/2021.acl-demo.15

Zenodo archive DOI: 10.5281/zenodo.3460969


@inproceedings{barbaresi-2021-trafilatura,
  title = {{Trafilatura: A Web Scraping Library and Command-Line Tool for Text Discovery and Extraction}},
  author = "Barbaresi, Adrien",
  booktitle = "Proceedings of the Joint Conference of the 59th Annual Meeting of the Association for Computational Linguistics and the 11th International Joint Conference on Natural Language Processing: System Demonstrations",
  pages = "122--131",
  publisher = "Association for Computational Linguistics",
  url = "https://aclanthology.org/2021.acl-demo.15",
  year = 2021,
}

Software ecosystem

Jointly developed plugins and additional packages also contribute to the

field of web data extraction and analysis:

<img alt="Software ecosystem" src="https://raw.githubusercontent.com/adbar/htmldate/master/docs/software-ecosystem.png" align="center" width="65%"/>

Corresponding posts can be found on [Bits of

Language](https://adrien.barbaresi.eu/blog/tag/trafilatura.html).

Impressive, you have reached the end of the page: Thank you for your

interest!

Related tools