Skip to content

HTML

プロダクション向け HTML コンテンツ抽出ツール。自動エンコーディング検出(15+ エンコーディング)、スマート記事認識、リンク/メディア抽出、マルチフォーマット出力をサポート。

特徴

  • スマート記事認識 - ページのメインコンテンツを自動識別・抽出し、ナビゲーションや広告などのノイズを除去
  • コンテンツクリーニング - HTML を自動クリーニングし、危険なタグや属性を削除して XSS 攻撃を防止
  • メタデータ抽出 - タイトル、画像、リンク、動画、音声などの構造化情報を自動抽出
  • マルチフォーマット出力 - プレーンテキスト、Markdown、JSON の 3 種類の出力フォーマット
  • 自動エンコーディング検出 - UTF-8、GBK、Shift_JIS、Windows-1252 など 15+ エンコーディングをサポート
  • バッチ処理 - 並列バッチ抽出、組み込み Processor オブジェクトプール再利用
  • リンク抽出 - 独立したリンク抽出 API、タイプ別グループ化をサポート
  • 監査システム - プラグイン可能な監査パイプライン、マルチ Sink、イベントフィルタリングをサポート
  • セキュリティ保護 - 入力サイズ制限、深度制限、パストラバーサル防御、パニックリカバリ

インストール

bash
go get github.com/cybergodev/html

クイックスタート

go
package main

import (
    "fmt"
    "log"

    "github.com/cybergodev/html"
)

func main() {
    data := []byte(`<html><head><title>サンプル</title></head>
        <body><h1>タイトル</h1><p>本文コンテンツ</p></body></html>`)

    result, err := html.Extract(data)
    if err != nil {
        log.Fatal(err)
    }

    fmt.Println(result.Title) // 出力: サンプル
    fmt.Println(result.Text)  // 出力: タイトル\n\n本文コンテンツ
}

アーキテクチャ概要

HTML ライブラリは 3 つのコアタイプを中心に構築されています:

text
                Config


             Processor ──→ Result
              │    │         │
              │    │         ├── Text / Title
              │    │         ├── Images / Videos / Audios
              │    │         ├── Links
              │    │         └── WordCount / ReadingTime
              │    │
              │    ├── Cache(キャッシュ)
              │    ├── Statistics(統計)
              │    └── AuditLog(監査)

              ├── Scorer(カスタムスコアリング ── 拡張可能)
              └── AuditSink(監査出力 ── 拡張可能)
タイプ役割説明
Config設定すべての動作を制御するセンター、4 種類のプリセットを提供
Processorエンジンステートフルな処理エンジン、キャッシュ・統計・監査を管理
Result結果抽出された構造化出力、テキストとすべてのメタデータを含む

Processor vs パッケージ関数

パッケージ関数Processor
呼び出し方html.Extract(data)p, _ := html.New(cfg); p.Extract(data)
キャッシュなし(内部一時プールを使用)あり、TTL と容量を設定可能
統計なしあり、ヒット率などの指標を照会可能
監査なしあり、監査パイプラインを設定可能
ライフサイクル管理不要defer p.Close() が必要
並列安全性ありあり

選択のヒント

  • 一度きりの抽出(CLI ツール、スクリプト)→ パッケージ関数
  • サーバーでの高頻度呼び出し(Web サービス、クローラー)→ Processor
  • 監査/モニタリングが必要 → Processor
段階ページ学べる内容
入門クイックスタートインストール、基本的な使い方、2 つの呼び出し方
コアコンテンツ抽出Extract ファミリー、Config 設定、Result の読み方
フォーマット出力フォーマットMarkdown / JSON 出力、カスタムテンプレート
パフォーマンスキャッシュと再利用Processor ライフサイクル、キャッシュチューニング、バッチ処理
拡張リンク抽出リンク抽出、グループ化、リソース発見
セキュリティ監査パイプライン監査システム、カスタム Sink、セキュリティモニタリング
応用テストとカスタマイズカスタム Scorer、ContentNode、テストモード
リファレンスチートシートよく使う API 一覧

次のステップ