Webスクレイピング・本文抽出ツール「Trafilatura」の特徴と使い方
「Trafilatura」は、Web上のテキストを収集・抽出するために設計されたPythonパッケージおよびコマンドラインツールです。Webページからナビゲーションバーや広告などのノイズを除去し、本文を高精度に抽出することに特化しています[1]。
RAGやテキストマイニングの前処理として有用です。
1. Trafilaturaの主な特徴
Trafilaturaは、単なるHTMLダウンロードツールではなく、コンテンツの「意味」を理解して抽出することを目指しています。主な特徴は以下の通りです[1][2]。
本文抽出の精度が高い: ヘッダー、フッター、リンク集などの「繰り返し現れる要素によるノイズ」を排除し、記事の本文だけをきれいに抽出します。
メタデータの取得: 本文だけでなく、タイトル、著者、日付、サイト名、カテゴリー、タグなどのメタデータも抽出可能です。
多様な出力フォーマット: TXT、Markdown、CSV、JSON、XMLなど、利用しやすい形式に変換できます。
高速で堅牢: 何百万もの文書処理で実稼働しており、処理速度と安定性が評価されています。ベンチマークでも他のライブラリと比較して優れた性能を示しています。
画像リンクの取得: 本文に関連性の高い画像リンクを抽出する機能もあります。
2. インストール方法
Python環境があれば、pipコマンドで簡単にインストールできます。
基本インストール
$ pip install trafilatura推奨インストール(高速化・文字コード判定強化)
依存ライブラリを含めてフル機能を利用する場合(高速化やより正確なエンコーディング検出など)は、[all]を指定してインストールすることが推奨されています。
$ pip install -U trafilatura[all]3. Pythonライブラリとしての使い方
Pythonスクリプト内でモジュールとしてインポートして使用する方法です。
基本的なテキスト抽出
URLからHTMLを取得し、そこからテキストを抽出する基本的な流れは以下の通りです。
from trafilatura import fetch_url, extract
# URLからHTMLを取得
url = "https://example.com/article"
downloaded = fetch_url(url)
# HTMLからメインコンテンツを抽出(テキスト形式)
result = extract(downloaded)
print(result)フォーマットの指定
output_format引数を指定することで、出力形式を変更できます。
Markdown形式で出力(メタデータ付き)
# メタデータを含めてMarkdownで出力
result = extract(downloaded, output_format="markdown", with_metadata=True)
print(result)Markdown形式では、太字やリストなどの構造を維持しつつ、記事の冒頭にタイトルや日付などのメタデータを付与することも可能です。
JSON形式で出力
result = extract(downloaded, output_format="json")JSON形式で出力すると、テキスト、コメント、メタデータなどが構造化されたデータとして取得できます。
画像リンクの取得
include_images=Trueを指定するか、bare_extraction関数を使用することで、本文に関連する画像リンクを取得できます。
import trafilatura
url = "https://example.com"
downloaded = trafilatura.fetch_url(url)
result = trafilatura.bare_extraction(downloaded, include_images=True)
print(result['image']) # 画像URLが表示される4. CLIとしての使い方
インストールを行うと、ターミナルから直接trafilaturaコマンドを使用できます。
URLを指定して抽出
$ trafilatura -u "https://example.com/article"
Markdown形式で出力
$ trafilatura -u "https://example.com/article" --markdownファイルをパイプで渡して処理 既にダウンロード済みのHTMLファイルがある場合、それを渡して処理することも可能です。
$ cat my_article.html | trafilatura弊社HPにて試した結果を以下に示します。

5. 他ツールとの比較と使い分け
Trafilaturaは、「HTMLから余計なゴミを減らしてきれいに抽出したい」という目的において有用です。類似サービスとしては、FirecrawlやCrawl4AIというサービスがあるようです。向いているユースケースとしては、以下の通りです。
・RAG(検索拡張生成)用のデータセット作成。
・ニュース記事やブログ記事からの本文抽出・分析。
・Webサイトのサムネイル画像候補の取得。
注意点として、画像抽出機能は必ずしも意図した画像が選ばれるとは限らず、本文に最も関係のある画像を1つ取得する挙動となるようです。
総じて、一瞬で精度良い情報が取れるので、利用しやすいと感じました。HPからの情報取得において、最もプリミティブなのはすべての情報をbeautiful soupで取得する方法ですが、それと比較するまでもなく、クリーンな情報が取得できる点で優れています。
参考文献
[1] kun432, zenn, "HTMLを構造化データに変換する「Trafilatura」を試す", 更新日2024/9/25, 閲覧日2026/2/7.
[2] Handbook編集部,Hakky Hnadbook, "Trafilaturaを使って任意のwebサイトから画像の取得をする方法", 更新日2025/7/6, 閲覧日2026/2/7.
