このプロジェクトについて
Katanaは、GoベースのWebクローリングおよびスパイダリングフレームワークであり、直接使用するだけでなく、自動化ワークフローの一部としても使用できるように設計されています。ターゲットは、単一のURL、カンマ区切りのURL、リストファイル、またはパイプされたSTDIN入力として受け付け、発見されたURLとメタデータをSTDOUT、ファイル、またはJSONLに出力できます。インストールオプションには、go install、プレビルドリリースバイナリ、およびDockerイメージが含まれます。
標準クロールモードはGoのHTTPライブラリを使用し、JavaScriptやDOMをレンダリングしません。オプションのヘッドレスモードはChromeを使用してページをレンダリングし、JavaScriptを実行し、ブラウザで読み込まれたり非同期で読み込まれたりするエンドポイントを発見します。ヘッドレス設定には、システムChromeの選択、カスタムChromeパスまたはデバッガWebSocket URL、ブラウザデータディレクトリ、シークレットモードとサンドボックスの制御、可視ブラウザモード、追加のChromeオプション、XHR抽出、およびヒューリスティック、load、DOMContentLoaded、networkidle、noneなどのページロード戦略が含まれます。JavaScriptレンダリングのためにDOM待機時間を設定できます。
Katanaは、JavaScriptファイルからエンドポイントを解析してクロールでき、オプションでjsluice解析を使用できます。実験的な自動フォーム入力、フォームとフィールドの抽出、カスタムフォーム設定、およびCapSolverによる外部解決を用いた自動キャプチャ検出をサポートします。文書化されたサポート対象キャプチャタイプは、reCAPTCHA v2、reCAPTCHA v3、reCAPTCHA Enterprise、Cloudflare Turnstile、およびhCaptchaです。
クロール動作は、深さ、期間、ドメインあたりの最大ページ数、応答サイズ、タイムアウト、リトライ、リダイレクト処理、プロキシ、カスタムヘッダーまたはクッキー、カスタムリゾルバ、および深さ優先または幅優先戦略によって制約できます。また、robots.txtやsitemapファイルを処理し、テクノロジーを検出し、オプションでTLSクライアントhelloをランダム化できます。
スコープ制御には、事前定義されたrdn、fqdn、dnフィールド、正規表現の包含および除外ルール、ホストスコープの無効化、外部URLの表示、およびCDN、プライベートIP範囲、CIDR、IP、または正規表現に一致するホストの除外が含まれます。出力フィルタリングは、URL正規表現、拡張子の一致またはフィルタリング、DSLベースの応答条件、ページタイプフィルター、クエリパラメータの正規化、類似URLフィルタリング、および重複コンテンツフィルタリングをサポートします。ページコンテンツの類似性には、simhash、TF-IDF、またはBM25を使用でき、設定可能なしきい値とクラスターごとの処理予算があります。
レートと実行制御は、同時フェッチャー、並列入力、リクエスト遅延、およびグローバルまたはホストごとの1秒あたりおよび1分あたりのレート制限をカバーします。出力は、設定可能なフィールドまたはテンプレートを使用し、HTTPリクエストとレスポンスを保存し、生データやボディを省略し、サイレント、詳細、またはデバッグモードで実行できます。クロールは、再開設定ファイルから再開できます。
オプションのナレッジベース機能は、自動的にダウンロードされたモデルを使用してMLベースのページタイプとフォーム分類を提供します。また、シークレットを抽出し、オプションでライブプロバイダー呼び出しで検証し、REST、GraphQL、SOAP、およびXHRエンドポイントを分類できます。プロジェクトのドキュメントは、ユーザーにツールを責任を持って使用し、自身の使用に対して責任があることを注意喚起しています。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.