從網頁中擷取乾淨、結構化的文字是 LLM 訓練資料集、研究語料庫和內容分析管線的基礎任務。Trafilatura 已成為此任務的黃金標準——這是一個 Python 函式庫,在開源文字擷取工具中持續取得最高的 F-Score,同時保持輕量、快速且易於整合。
由柏林-布蘭登堡人文科學院的 Adrien Barbaresi 開發,Trafilatura 超越了簡單的 HTML 轉文字功能。它能識別網頁的主要內容區域,移除導覽列、頁首、頁尾、廣告和側邊欄,僅回傳有意義的文字內容。其爬取功能允許遞迴追蹤網域內的連結,從整個網站建立全面的文字語料庫。
該工具的準確性和可靠性使其被 HuggingFace、IBM 和 Microsoft 等主要組織採用,並廣泛應用於學術 NLP 研究。它在 Clean-Eval 和其他評估框架中的頂尖表現,使其成為需要大規模可信文字擷取的研究人員的預設選擇。
Trafilatura 的準確度與其他擷取工具相比如何?
Trafilatura 的效能優勢已由衡量各類網頁內容精確度和召回率的學術基準所證實。
| 工具 | F-Score | 精確度 | 召回率 | 語言支援 |
|---|---|---|---|---|
| Trafilatura | 0.94 | 0.95 | 0.93 | 45 種以上語言 |
| Newspaper3k | 0.82 | 0.84 | 0.80 | 20 種以上語言 |
| readability | 0.79 | 0.81 | 0.77 | 主要為英文 |
| boilerpy3 | 0.76 | 0.78 | 0.74 | 10 種以上語言 |
| jusText | 0.71 | 0.74 | 0.68 | 15 種以上語言 |
在具有大量導覽元素、嵌入媒體和動態內容的複雜頁面佈局上,差距尤為明顯——而這些正是現代網頁的主流。Trafilatura 基於啟發式的方法,加上其處理單一頁面內多種內容格式的能力,使其具有持續的優勢。
Trafilatura 支援哪些輸出格式?
Trafilatura 在輸出格式上的多樣性使其適用於廣泛的下游應用。
graph LR
A[HTML 輸入] --> B[Trafilatura]
B --> C[純文字]
B --> D[Markdown]
B --> E[JSON]
B --> F[XML]
B --> G[CSV]
C --> H[LLM 訓練資料]
C --> I[全文搜尋]
D --> J[RAG 區塊]
D --> K[文件]
E --> L[結構化分析]
F --> M[TEI 編碼]
G --> N[試算表匯入]
| 格式 | 最適用於 | 使用案例 |
|---|---|---|
| 純文字 | LLM 訓練語料庫 | 微調資料集 |
| Markdown | RAG 管線文件 | 結構化知識庫 |
| JSON | 程式化分析 | 內容元資料擷取 |
| XML/TEI | 學術歸檔 | 數位人文研究 |
| CSV | 批次處理 | 批次 URL 擷取 |
每種格式都保留了擷取到的文字以及可設定的元資料,如 URL、標題、作者、發布日期和擷取時間戳記。
如何開始使用 Trafilatura?
安裝和基本使用非常簡單,只需一行 pip 命令和幾行 Python 程式碼。
| 任務 | 命令 / 程式碼 | 備註 |
|---|---|---|
| 安裝 | pip install trafilatura | 需要 Python 3.8+ |
| 從 URL 擷取 | trafilatura --url "https://example.com" | CLI 一行指令 |
| Python 基本用法 | from trafilatura import fetch_url, extract | 核心匯入 |
| Python 使用 | content = extract(fetch_url(url)) | 回傳 Markdown |
| 批次處理 | trafilatura --list urls.txt --output-dir ./output | 支援爬取 |
| 爬取網域 | trafilatura --sitemap "https://example.com/sitemap.xml" | 遞迴爬取 |
該函式庫還提供精細控制選項,包括輸出格式選擇、語言檢測、內容排除規則和擷取策略配置。
常見問題
什麼是 Trafilatura? Trafilatura 是一款基於 Python 的網頁文字擷取與爬取工具,能識別並擷取 HTML 頁面中的主要文字內容,同時移除頁首、頁尾、導覽列、廣告等非必要元素。它在學術基準測試中達到開源文字擷取工具中最高的 F-Score。
Trafilatura 支援哪些輸出格式? Trafilatura 支援多種輸出格式,包括純文字、Markdown、JSON、XML 和 CSV。這種多樣性使其適用於從 LLM 資料集準備到研究語料庫建置和內容分析等各種下游任務。
Trafilatura 與其他擷取工具相比精確度如何? Trafilatura 在比較開源文字擷取工具的學術基準測試中持續獲得最高的 F-Score。在精確度和召回率方面,它優於 Newspaper3k、readability、boilerpy3 和 jusText 等替代方案。
如何安裝 Trafilatura?
Trafilatura 可透過 pip 安裝:pip install trafilatura。需要 Python 3.8 或更高版本,且依賴項極少,易於整合到任何 Python 環境中。
哪些組織使用 Trafilatura? Trafilatura 在業界和研究領域被廣泛採用。知名使用者包括 HuggingFace(用於建立資料集)、IBM(用於內容分析)、Microsoft(用於研究管線),以及眾多學術機構用於網路語料庫建置和 NLP 研究。
延伸閱讀
- Trafilatura GitHub 儲存庫 – 原始碼、文件和問題追蹤
- Trafilatura on PyPI – Python 套件與安裝說明
- Trafilatura 學術論文 – 關於擷取方法的同儕審查出版
- 使用 Trafilatura 建立 HuggingFace 資料集 – 網路規模資料集建置官方指南
- Clean-Eval 基準測試 – 文字擷取工具評估框架
無程式碼也能輕鬆打造專業LINE官方帳號!一鍵導入模板,讓AI助你行銷加分!