Defuddle という新しい JavaScript ライブラリが開発者コミュニティで注目を集めており、 Mozilla の Readability の潜在的な代替品として、ウェブコンテンツ抽出と HTML から Markdown への変換における長年の問題に対処している。 Obsidian Web Clipper の開発チームによって作成された Defuddle は、ウェブページからメインコンテンツを抽出する際により清潔で一貫性のある出力を提供することを目指している。
** Defuddle バンドルオプション:**
- コアバンドル (
defuddle
): ブラウザ使用向けのメインバンドル、依存関係なし - フルバンドル (
defuddle/full
): 追加の数式解析機能を含む - ** Node.js バンドル** (
defuddle/node
): JSDOM を使用した Node.js 向けに最適化、完全な数学機能と Markdown 機能を含む
コミュニティが既存ツールの品質と信頼性の問題を指摘
開発者たちは現在のウェブコンテンツ抽出ツールの限界について声を上げている。多くの開発者が Mozilla の Readability が過度に保守的で、メイン記事テキストを識別しようとする過程で有用なコンテンツを削除してしまうことに不満を感じている。コミュニティでの議論によると、 Readability は最近のアップデートで積極的にメンテナンスされているものの、その根本的なアプローチには実際の使用に影響を与える基本的な欠陥があることが明らかになっている。
特に注目される問題の一つは、言語固有のフォーマット問題で、 オランダ語 やその他の言語で数字にピリオドの代わりにコンマを使用する価格が含まれるページが抽出アルゴリズムを混乱させることがある。これらのバグは、多様なウェブコンテンツに対する万能ソリューションを維持することの困難さを浮き彫りにしている。
Defuddle のマルチパスアプローチがより良いコンテンツ回復を提供
従来の抽出ツールとは異なり、 Defuddle は初回の試行でコンテンツが返されない場合に回復できるマルチパス検出システムを採用している。このアプローチにより、精度を維持しながらより寛容な処理が可能になる。このライブラリはまた、ページのモバイルスタイルを分析して安全に隠したり削除したりできる要素を特定するなどの革新的な技術も使用している。
このツールは単純なコンテンツ抽出を超えて、出力フォーマットを標準化している。脚注、コードブロック、数式はすべて一貫した HTML 構造に変換され、 Markdown 変換などの下流処理により適した結果となる。
主要な設定オプション:
debug
:詳細ログを有効にし、HTML属性を保持するmarkdown
:コンテンツを Markdown 形式に変換するseparateMarkdown
:HTMLコンテンツを保持し、別途 Markdown バージョンを返すremoveExactSelectors
:広告・ソーシャルセレクターに完全一致する要素を削除する(デフォルト:true)removePartialSelectors
:広告・ソーシャルセレクターに部分一致する要素を削除する(デフォルト:true)
実際のアプリケーションでの優れたパフォーマンス
Obsidian Web Clipper ユーザーからのコミュニティフィードバックは特に好意的で、多くのユーザーが Markdown 抽出品質の信頼性を称賛している。このツールは、知識ベースの構築から AI 言語モデル用のクリーンなウェブコンテキストの作成まで、様々な用途で効果的であることが証明されている。
「 Markdown 抽出品質は私が見た中で最も信頼できるものです。」
MathML 変換による数式や標準化された脚注フォーマットを含む複雑なコンテンツタイプを処理するライブラリの能力は、よりシンプルな抽出ツールとは一線を画している。
標準化された出力形式:
- 見出し: タイトルと一致する場合、最初の H1/H2 を削除し、H1 を H2 に変換
- コードブロック: 言語データ属性で標準化:
<code data-lang="js" class="language-js">
- 脚注: 番号付き参照とバックリンクによる一貫した形式
- 数式: LaTeX データ属性を持つ標準 MathML に変換
代替ソリューションが認知を獲得
この議論はまた、コンテンツ抽出分野における他の堅牢な代替案にも注目を集めている。 Python 開発者は Trafilatura で成功を収めており、正確なメタデータ抽出と同等の抽出品質を提供している。 Go 開発者向けには、 Readability と Trafilatura の両方の積極的にメンテナンスされたポートが利用可能で、異なるプログラミング言語にわたる選択肢を提供している。
これらの代替案は、ウェブコンテンツ抽出のニーズが従来のツールが提供できる範囲を超えて進化しており、複数のプログラミングエコシステムにわたってイノベーションを推進していることを示唆している。
Defuddle は、開発者が日常的に直面する現実世界の問題に対処し、ウェブコンテンツ抽出技術における重要な前進を表している。標準化された出力とマルチパス検出への焦点は、現代のウェブページのますます複雑な環境から信頼性の高いクリーンなコンテンツ抽出を必要とするアプリケーションにとって特に価値がある。
参考: Defuddle