スクレイピングしたWebHTMLから構造化Markdownへの変換

Webスクレイピングからの生HTMLを構造化されたMarkdownに変換する方法。ノイズの多いマークアップ、広告、ナビゲーション要素の処理と、メインコンテンツの抽出によるクリーンな出力を解説。

Real-World HTML

詳細な説明

WebスクレイピングHTMLからMarkdownへの変換

Webスクレイピングで取得した生HTMLには、ナビゲーションメニュー、広告、フッターコンテンツ、scriptタグなど、Markdown出力に含めるべきでない要素が含まれています。スクレイピングHTMLの変換にはフィルタリングとコンテンツ抽出が必要です。

非コンテンツ要素の削除

変換前に、メインコンテンツに寄与しない要素を除去します:

  • <script><noscript> — JavaScriptコード
  • <style> — CSSルール
  • <nav> — ナビゲーションメニュー
  • <header><footer> — サイトレベルのヘッダーとフッター
  • <aside> — サイドバーと広告
  • 非表示要素 — display: nonevisibility: hiddenaria-hidden="true"

コンテンツ抽出戦略

  1. article要素を対象に<article><main>、またはコンテンツ系のクラスを持つ <div> を探す
  2. 可読性アルゴリズムを使用 — Mozilla Readabilityのようなライブラリがコンテンツ密度でスコアリング
  3. 手動CSSセレクタ — 含めるまたは除外する要素を指定

出力のクリーンアップ

初期変換後にポストプロセスが必要な場合があります:

  • 重複する空行の削除
  • 壊れたリンクの修正(相対を絶対に)
  • 空の見出しや段落の削除
  • 見出しレベルの正規化

動的コンテンツ

JavaScriptでレンダリングされるコンテンツ(SPA、Reactアプリ)は変換前にHTMLを生成するためにヘッドレスブラウザが必要です。

バッチ処理

複数ページをスクレイピングする際は一貫した変換ルールを確立します:サイト全体で同じコンテンツセレクタ、統一された見出しレベル正規化、一貫した画像URL解決、フロントマター用テンプレート。

ユースケース

WebスクレイピングからMarkdownへの変換は、コンテンツ集約、ナレッジベースの構築、Webコンテンツのアーカイブ、静的サイトジェネレータへのウェブサイト全体の移行、オンラインリソースからのオフライン読み取り可能なドキュメントの作成に使用されます。

試してみる — HTML to Markdown

フルツールを開く