はじめに
データ主導の現代の環境では、組織がウェブコンテンツを抽出、処理、分析するための効率的な方法を必要としています。従来のウェブスクレイピングは、多くの課題に直面しています。ボット対策、複雑なJavaScriptレンダリング、そして常時メンテナンスの必要性です。さらに、構造化されていないウェブデータを理解するには、高度な処理が求められます。
このガイドでは、n8nのワークフロー自動化、Scrapelessウェブスクレイピング、インテリジェント抽出のためのClaude AI、意味的ストレージのためのQdrantベクターデータベースを使用して、完全なウェブデータパイプラインを構築する方法を示します。知識ベースを構築する場合、市場調査を行う場合、またはAIアシスタントを開発する場合でも、このワークフローは強力な基盤を提供します。
構築するもの
私たちのn8nワークフローは、いくつかの最先端技術を組み合わせています:
- Scrapeless Web Unlocker:JavaScriptレンダリングを伴う高度なウェブスクレイピング
- Claude 3.7 Sonnet:AI駆動のデータ抽出と構造化
- Ollama Embeddings:ローカルベクター埋め込み生成
- Qdrant Vector Database:意味的ストレージと検索
- 通知システム:Webhookを介したリアルタイムモニタリング
このエンドツーエンドのパイプラインは、混乱したウェブデータを構造化されたベクター化された情報に変換し、意味的検索やAIアプリケーションの準備が整います。
インストールとセットアップ
n8nのインストール
n8nは、Node.js v18、v20、またはv22を必要とします。バージョン互換性の問題が発生した場合:
# Node.jsバージョンを確認
node -v
# より新しい非サポートバージョン(例:v23+)を使用している場合は、nvmをインストール
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
# またはWindowsの場合は、NVM for Windowsインストーラを使用
# 互換性のあるNode.jsバージョンをインストール
nvm install 20
# インストールしたバージョンを使用
nvm use 20
# n8nをグローバルにインストール
npm install n8n -g
# n8nを実行
n8n
n8nインスタンスはhttp://localhost:5678で利用可能であるべきです。
Claude APIの設定
- Anthropic Consoleに訪れ、アカウントを作成
- APIキーセクションに移動
- 「キーを作成」をクリックし、適切な権限を設定
- n8nワークフローで使用するためにAPIキーをコピー(AIデータチェッカー、Claudeデータ抽出器、Claude AIエージェント用)
Scrapelessの設定
-
Scrapelessに訪れ、アカウントを作成
-
ダッシュボードのユニバーサルスクレイピングAPIセクションに移動 https://app.scrapeless.com/exemple/overview
-
n8nワークフローで使用するためにトークンをコピー
あなたはこのcurlコマンドを使用して、Scrapelessウェブスクレイピングリクエストをカスタマイズし、n8nのHTTPリクエストノードに直接インポートできます:
curl -X POST "https://api.scrapeless.com/api/v1/unlocker/request" \
-H "Content-Type: application/json" \
-H "x-api-token: scrapeless_api_key" \
-d '{
"actor": "unlocker.webunlocker",
"proxy": {
"country": "ANY"
},
"input": {
"url": "https://www.scrapeless.com",
"method": "GET",
"redirect": true,
"js_render": true,
"js_instructions": [{"wait":100}],
"block": {
"resources": ["image","font","script"],
"urls": ["https://example.com"]
}
}
}'
DockerでのQdrantのインストール
# Qdrantイメージをプル
docker pull qdrant/qdrant
# データ永続性のあるQdrantコンテナを実行
docker run -d \
--name qdrant-server \
-p 6333:6333 \
-p 6334:6334 \
-v $(pwd)/qdrant_storage:/qdrant/storage \
qdrant/qdrant
Qdrantが実行されていることを確認:
curl http://localhost:6333/healthz
Ollamaのインストール
macOS:
brew install ollama
Linux:
curl -fsSL https://ollama.com/install.sh | sh
Windows:Ollamaのウェブサイトからダウンロードしてインストールします。
Ollamaサーバーを起動:
ollama serve
必要な埋め込みモデルをインストール:
ollama pull all-minilm
モデルのインストールを確認:
ollama list
n8nワークフローの設定
ワークフローの概要
私たちのワークフローは以下の重要なコンポーネントで構成されています:
- マニュアル/スケジュールトリガー:ワークフローを開始
- コレクションチェック:Qdrantコレクションの存在を確認
- URL構成:ターゲットURLとパラメータを設定
- Scrapelessウェブリクエスト:HTMLコンテンツを抽出
- Claudeデータ抽出:データを処理し構造化
- Ollama 埋め込み: ベクトル埋め込みを生成します
- Qdrant ストレージ: ベクトルとメタデータを保存します
- 通知: ウェブフックを介してステータス更新を送信します
ステップ 1: ワークフロートリガーとコレクションチェックの設定
手動トリガーノードを追加し、次に HTTP リクエストノードを追加して Qdrant のコレクションが存在するかどうかを確認します。この初期ステップでコレクション名をカスタマイズできます - ワークフローは、存在しない場合に自動的にコレクションを作成します。
重要な注意: デフォルトの「hacker-news」と異なるコレクション名を使用したい場合は、Qdrant を参照するすべてのノードで一貫して変更してください。
ステップ 2: Scrapeless ウェブリクエストの設定
Scrapeless ウェブスクレイピング用の HTTP リクエストノードを追加します。以前に提供された curl コマンドを参照として使用し、YOUR_API_TOKEN を実際の Scrapeless API トークンに置き換えてノードを設定します。
より高度なスクレイピングパラメータは、Scrapeless Web Unlocker で設定できます。
ステップ 3: Claude データ抽出
HTML コンテンツを処理するためのノードを追加します。認証のために Claude API キーを提供する必要があります。Claude 抽出器は HTML コンテンツを分析し、構造化されたデータを JSON 形式で返します。
ステップ 4: Claude 出力のフォーマット
このノードは、Claude の応答を受け取り、関連情報を抽出して適切にフォーマットしてベクトル化の準備をします。
ステップ 5: Ollama 埋め込み生成
このノードは構造化されたテキストを Ollama に送信して埋め込みを生成します。Ollama サーバーが実行されており、all-minilm モデルがインストールされていることを確認してください。
ステップ 6: Qdrant ベクトルストレージ
このノードは生成された埋め込みを Qdrant コレクションに関連するメタデータと共に保存します。
ステップ 7: 通知システム
最後のノードは、構成されたウェブフックを介してワークフローの実行状況の通知を送信します。
よくある問題のトラブルシューティング
n8n Node.js バージョンの問題
次のようなエラーが表示された場合:
Your Node.js version X is currently not supported by n8n.
Please use Node.js v18.17.0 (recommended), v20, or v22 instead!
nvm をインストールし、セットアップセクションで説明されている互換性のある Node.js バージョンを使用することで修正します。
Scrapeless API 接続の問題
- API トークンが正しいことを確認してください
- API レート制限に達しているかどうかを確認してください
- URL フォーマットが正しいことを確認してください
Ollama 埋め込みエラー
一般的なエラー: connect ECONNREFUSED ::1:11434
修正:
- Ollama が実行されていることを確認: ollama serve
- モデルがインストールされていることを確認: ollama pull all-minilm
- localhost の代わりに直接 IP (127.0.0.1) を使用
- 別のプロセスがポート 11434 を使用していないか確認
高度な使用シナリオ
複数の URL のバッチ処理
1 回のワークフロー実行で複数の URL を処理するために:
- URL を並行して処理するために Split In Batches ノードを使用
- 各バッチのエラーハンドリングを適切に設定
- Merge ノードを使用して結果を統合
定期的なデータ更新
スケジュールされた更新でベクトルデータベースを最新の状態に保つ:
- 手動トリガーをスケジュールノードに置き換え
- 更新頻度 (毎日、毎週など) を設定
- If ノードを使用して新しいまたは変更されたコンテンツのみを処理
カスタム抽出テンプレート
さまざまなコンテンツタイプに対して Claude の抽出を調整:
- ニュース記事、製品ページ、ドキュメンテーションなどに特定のプロンプトを作成
- Switch ノードを使用して適切なプロンプトを選択
- 抽出テンプレートを環境変数として保存
結論
この n8n ワークフローは、Scrapeless ウェブスクレイピング、Claude AI 抽出、ベクトル埋め込み、Qdrant ストレージの強みを結び付ける強力なデータパイプラインを作成します。これらの複雑なプロセスを自動化することにより、データの取得という技術的課題よりも抽出されたデータの使用に集中できます。
n8n のモジュラーな性質により、このワークフローを追加の処理ステップや他のシステムとの統合、または特定のニーズを満たすためのカスタムロジックで拡張することができます。AI ナレッジベースを構築したり、競合分析を行ったり、ウェブコンテンツを監視したりする場合でも、このワークフローは堅実な基盤を提供します。
Scrapelessでは、適用される法律、規制、およびWebサイトのプライバシーポリシーを厳密に遵守しながら、公開されているデータのみにアクセスします。 このブログのコンテンツは、デモンストレーションのみを目的としており、違法または侵害の活動は含まれません。 このブログまたはサードパーティのリンクからの情報の使用に対するすべての責任を保証せず、放棄します。 スクレイピング活動に従事する前に、法律顧問に相談し、ターゲットウェブサイトの利用規約を確認するか、必要な許可を取得してください。