GoScrapy - Goベースの超高速Webスクレイピングフレームワーク
(github.com/tech-engine)- Python ScrapyのアーキテクチャをGo言語の性能を活かしてネイティブ実装した高性能Webスクレイピングフレームワーク
goscrapy startprojectコマンド1行で、プロジェクト構成、Goモジュールの初期化、依存関係の解決まで自動スキャフォールディング- Goの並行性モデルに基づく高スループット並列スクレイピング。リトライ・Cookie管理・並行処理をフレームワークが自動管理
- 失敗時は指数バックオフ(exponential back-off) を適用した自動リトライ
- Spider → Engine → Scheduler → Worker → Middleware → HTTP Clientへと続く明確なデータフローアーキテクチャ
- SpiderがリクエストをEngineに渡し、EngineがSchedulerにスケジューリング
- SchedulerがWorker Queueで利用可能なワーカーを確保した後、ジョブをWorkerに渡す
- WorkerがExecutorをトリガーし、ExecutorがMiddlewaresを経由してHTTP Clientへリクエストを送信
- レスポンスは逆順にMiddlewares → Executor → Spiderコールバックへ返される
- Spiderがレコードをyieldすると、EngineがPipelineManagerを通じてDB、CSV、ファイルなどへデータのエクスポートを実行
- CSV、JSON、MongoDB, Google Sheets, Firebase など多様なエクスポートパイプラインを標準搭載
- Azure TLS、Dupefilter などのビルトインミドルウェアを提供し、ほぼすべてのレイヤーを置き換え・拡張可能な設計
- チェーン可能なCSS/XPathセレクターによる柔軟なHTMLパース
settings.goでミドルウェアとパイプラインを集中管理して設定し、spider.goはパースロジックのみに集中できるクリーンな構成- Google Mapsスクレイパー、Fingerprint Spoofing(ボット検知回避)、TUIリアルタイムモニタリングなど実践的なサンプルを提供
- 現在はv0.xの開発段階で、安定したv1.0に向けてCore APIを継続的に改善中
- Business Source License(BSL) : 商用製品で自由に利用可能だが、フレームワーク自体を競合サービスとして再販することは制限
まだコメントはありません。