web-text-pipe-go

command module
v1.2.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 24, 2026 License: MIT Imports: 1 Imported by: 0

README

✍️ Web Text Pipe

Language Go Version GitHub tag (latest by date)

💡 概要 (About) — Web記事からクリーンな本文を高速・堅牢に抽出するパイプラインツール

WebTextPipe は、Go言語の強力な並列処理機能と、高性能なWebコンテンツ抽出ライブラリ shouni/go-web-exact を統合した、RSS/Atomフィード特化型の高速スクレイピングCLIツールです。

RSSフィードからの記事一括並列収集と、単一URLからの高精度な本文抽出という2つの主要なワークフローを提供し、ノイズ(広告、ナビゲーションなど)を自動で排除したクリーンなテキストデータ収集パイプラインを構築します。

🌟 主な機能
  • 高精度な本文抽出 (Core): 記事の本文のみを高精度で特定し、ノイズ(広告、コメントなど)を排除して整形済みテキストを返します。
  • RSSフィード並列収集 (scraper): 指定されたフィードURLから記事URLを抽出し、最大同時実行数を制御しながら並列で記事本文を一括収集します。
  • 単一URL抽出 (exact): 開発やデバッグのために、単一のURLを指定し、その記事本文を直接抽出します。
  • 堅牢な処理: 処理の信頼性を高める2層リトライ構造を採用。ネットワークレベルのリトライ(go-http-kit)に加え、アプリケーションのワークフロー層 (pkg/runner) で失敗URLに対する遅延リトライ戦略を実行します。

✨ 技術スタック (Technology Stack)

要素 技術 / ライブラリ 役割
言語 Go (Golang) ツールの開発言語。並列処理と高速なCLI実行を実現します。
コンポーネントファクトリ pkg/builder (ディレクトリパス変更) すべての依存関係を構築し、リトライ戦略を注入してrunner.Runnerを初期化するファクトリ層。
実行管理 pkg/runner (ディレクトリパス変更) フィード解析から実行制御までのワークフローを管理し、失敗URLに対するリトライ戦略も実行する上位層。
コア機能 shouni/go-web-exact フィード解析 (pkg/feed)、本文抽出 (pkg/extract)、並列スクレイピング (pkg/scraper) の中核機能。
通信基盤 shouni/go-http-kit すべてのネットワーク通信における指数バックオフによる自動リトライ(低レベル)とタイムアウト制御を提供します。
並行処理 Goroutines / セマフォ制御 記事ごとの抽出処理を並列化し、最大同時実行数を厳密に管理します。
CLI Cobra コマンドラインインターフェースの構築。

📦 使い方 (CLI Command)

1. ビルドとインストール
# Go環境が整っていることを前提とします
git clone git@github.com:shouni/web-text-pipe-go.git
cd web-text-pipe-go
go build -o bin/webpipe
2. コマンド一覧

本ツールは、用途に応じて以下の2つのサブコマンドを提供します。

コマンド 説明 主な用途
scraper RSS/AtomフィードからURLを抽出し、記事本文を並列で一括取得します。 大量の記事データの定期的な収集。
exact 単一のURLから本文を高精度で抽出し、結果を標準出力またはファイルに出力します。 デバッグ、テスト、または単発の記事抽出。

🚀 scraper コマンド (並列収集)

フィードからの並列抽出を実行します。

フラグ一覧 (scraper)
フラグ 短縮形 説明
--url -u 必須。解析対象のRSS/AtomフィードのURLを指定します。
--concurrency -c 最大並列実行数。同時に処理する記事の数を制御します。(Default: 10)
--timeout (なし) グローバル設定。HTTPリクエストのタイムアウト時間(秒)。(Default: 15)
実行例 (scraper)
# Yahoo!ニュースのITカテゴリのRSSを読み込み、最大8並列、タイムアウト20秒で抽出
./bin/webpipe scraper \
    --url "https://news.yahoo.co.jp/rss/categories/it.xml" \
    --concurrency 8 \
    --timeout 20

🔍 exact コマンド (単一URL抽出)

単一のWebページから本文を抽出します。

フラグ一覧 (exact)
フラグ 短縮形 説明
--url -u 必須。抽出対象の単一WebページURLを指定します。
--output-file -o 抽出されたテキストを保存するファイル名。省略時は標準出力に出力。
--timeout (なし) グローバル設定。HTTPリクエストのタイムアウト時間(秒)。(Default: 15)
実行例 (exact)
# 指定URLから本文を抽出し、結果を output.txt に保存
./bin/webpipe exact \
    --url "https://example.com/some-article" \
    --output-file "output.txt"

📜 ライセンス (License)

このプロジェクトは MIT License の下で公開されています。

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
pkg

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL