Discover / Data & Research
Trafilatura
by adbarPython
Python library for extracting clean text and metadata from web pages.
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 matchedNo 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 confidenceRaw 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
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/>
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:
- Most efficient open-source library in ScrapingHub's article extraction benchmark
- Best overall tool according to Bien choisir son outil d'extraction de contenu à partir du Web
(Lejeune & Barbaresi 2020)
- Best single tool by ROUGE-LSum Mean F1 Page Scores in An Empirical Comparison of Web Content Extraction Algorithms
(Bevendorff et al. 2023)
Usage and documentation
Getting started with Trafilatura
is straightforward. For more information and detailed guides, visit
- Installation
- Usage:
- Core Python functions
- Interactive Python Notebook: Trafilatura Overview
- Tutorials and use cases
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
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
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!