00:00:00RAG用のスクレイパーが必要な時、問題はデータの取得ではなく、
00:00:03そのクリーニングにあります。
00:00:04JavaScriptで崩れ、HTMLは混沌としており、
00:00:07LLMで使える形にするだけで時間を浪費してしまいます。
00:00:11この解決策が「CrawlForAI」です。
00:00:13AI特化型で非同期処理に対応し、
00:00:15JSを処理して綺麗なMarkdownやJSONを出力します。
00:00:18Scrapyのような従来のPythonスクレイパーより最大6倍高速です。
00:00:23かつてない速さで、モデルに即投入できるデータが得られます。
00:00:26仕組みはどうなっているのか?何が違うのか?
00:00:29それらについて解説していきます。
00:00:30[音楽]
00:00:35では、CrawlForAIの実体は何でしょうか?
00:00:37一見、単なるPythonクローラーに見えますが、
00:00:40スクレイピング用ではなく「AI用」に作られています。
00:00:43決定的な違いはここです。
00:00:44多くのクローラーは生のHTMLを返しますが、
00:00:46これはLLMですぐ使えるMarkdownや構造化JSONを返します。
00:00:52PlaywrightでJavaScriptを処理し、
00:00:54非同期で動作するため、高い拡張性を持っています。
00:00:57さらに、リンクのみ必要な時に描画を省くプリフェッチモードも搭載。
00:01:01チャットボットやアシスタント、エージェントを作る際、
00:01:04課題はクローリングではなく、
00:01:08雑多なウェブデータを「使えるデータ」に変えることです。
00:01:11CrawlForAIはこの問題を迅速に解消します。
00:01:15この種の内容がお好きなら、ぜひ登録を。
00:01:18常に新しい動画を公開しています。
00:01:20まずはシンプルに。基本的なクローリングを実行してみました。
00:01:23リポジトリやドキュメントを参考に、
00:01:25数行書き換えるだけで動かすことができました。
00:01:28AIパイプライン用に非同期リクエストを行うAsyncWebCrawlerをインポートします。
00:01:34あとはITニュースのURLを指定して実行するだけです。
00:01:38この出力を見てください。
00:01:40返ってきたのは生のHTMLではなく、
00:01:43クリーンなMarkdownとJSONです。
00:01:45見出しは構造化され、リンクも保持されています。
00:01:47内部ではページの取得からDOM解析、
00:01:50不要なノイズの除去まで行っています。
00:01:52内容をランク付けし、不要な情報なしで重要な部分だけを残せます。
00:01:57ニュース要約機やRAGの試作が必要な場合でも、
00:02:02クリーニング用のスクリプトを書く必要はありません。
00:02:04これをそのままモデルに渡すだけです。
00:02:07普通のツール同様の「スクレイピング」を予想していましたが、
00:02:11実際には「準備済みのデータ」が得られました。
00:02:14この差が、節約された時間です。
00:02:17ここからさらに面白くなります。
00:02:19色々試す中で気づいたのですが、
00:02:20全ページを描画する必要はないかもしれません。
00:02:23これを見てください。
00:02:25同じクローラーですが、
00:02:27「prefetch」をTrueに設定しています。
00:02:30Hacker Newsで試してみましょう。
00:02:31この実行速度を見てください。
00:02:33信じられないほど爆速でした。
00:02:35全ページを描画する代わりに、
00:02:37まずリンクだけを抽出します。
00:02:38単なる非同期フェッチです。
00:02:39アグリゲーターを作るなら、これは便利です。
00:02:42まず必要なものを見つけ、
00:02:44後から抽出を行えばいいのです。
00:02:45全てをクロールするのではなく、
00:02:47必要な分だけ。
00:02:48数百、数千のURLを扱う場合、
00:02:50この違いが大きな差になります。
00:02:52次に、実運用に関する話をしましょう。
00:02:55BFS(幅優先探索)戦略を使ってディープクロールを実行します。
00:02:58これが独自のBFSアプローチです。
00:03:01ここで再開状態(resume state)を定義し、
00:03:03状態変化のコールバックを追加します。
00:03:07クロールを開始した直後に、
00:03:08プロセスを強制終了してみます。
00:03:10通常、プロセスを落とすと、
00:03:13多くのツールは最初からやり直しになります。
00:03:14しかし、再実行するとどうでしょう。
00:03:16保存されたJSON状態を使って再開し、
00:03:19何も失うことなく中断した箇所から継続します。
00:03:22大規模なRAG用ナレッジベースを構築する際、
00:03:24クラッシュは単なる「手間」ではなく、
00:03:26通常は「コスト」の問題になりますが、
00:03:29これなら続きから始められます。
00:03:30さて、多くのスクレイパーが苦手なのがセマンティック抽出です。
00:03:35Pydanticで職種、会社、給与といった
00:03:37スキーマを定義します。
00:03:39Indeedをスクレイピングしてみましょう。
00:03:40LLM抽出戦略クラスを構成し、
00:03:44指示内容とプロバイダーを設定します。
00:03:46Indeed(求人サイト)で
00:03:48実行してみると、
00:03:49この出力結果を見てください。
00:03:51実に見事な出来栄えです。
00:03:52クリーンなフィールドを持つ構造化JSONです。
00:03:54内部で起きているのはこうです。
00:03:56CrawlForAIがページを
00:03:58選択したMarkdownやJSONに変換し、
00:04:01それをモデルに送信します。
00:04:03モデルはスキーマに基づいて構造化します。
00:04:06テキストをただ取得するのではなく、
00:04:07欲しい情報だけを抜き出しているのです。
00:04:09これならLLMでも扱えます。
00:04:11LLM系ツールとして、全く別次元の能力と言えるでしょう。
00:04:15素晴らしい機能ですが、
00:04:16少し客観的に見てみましょう。
00:04:18長所は、まず速いこと。
00:04:20ベンチマークでは最大6倍と非常に高速です。
00:04:22JavaScriptも自動で処理します。
00:04:24非同期でスケーラブル、
00:04:26クラッシュ後の復帰も可能です。
00:04:28そして最大のポイントは、
00:04:29LLMを直接統合している点です。
00:04:32オープンソースなのも魅力です。
00:04:33pip installするだけで、すぐに始められます。
00:04:35ただ、何事にも
00:04:36トレードオフはあります。
00:04:38まず、Python専用であること。
00:04:39Pythonを使わない人にとっては、
00:04:41欠点になるかもしれません。
00:04:42LLM機能には、Ollama等のローカルモデルを使わない限りAPIキーが必要です。
00:04:46クローリングによるレート制限のリスクもありますし、
00:04:49活発なオープンソースプロジェクトなので、
00:04:51常に更新を追う必要があります。
00:04:53頻繁にアップデートされていますから。
00:04:54ですが、AI重視の開発者にとっては、
00:04:56多くの苦痛を取り除いてくれるはずです。
00:04:58特にRAGパイプラインにおいては。
00:05:00では、既存ツールと比較してみましょう。
00:05:03PythonユーザーならScrapyですね。
00:05:05大規模な静的サイトの巡回には最適ですが、
00:05:07ルールベースでボイラープレートも多い。
00:05:10正直、セットアップにかなり時間がかかります。
00:05:13Markdown出力にLLM抽出を加えたいなら、
00:05:16カスタムレイヤーを自作することになります。
00:05:17CrawlForAIなら、それが標準装備です。
00:05:19Beautiful Soupもあります。
00:05:21軽量でシンプルですが、
00:05:23それは単なるパーサーに過ぎません。
00:05:25クローリングエンジンもなく、
00:05:26JavaScriptのレンダリングもできません。
00:05:28結局、色々なものを繋ぎ合わせる羽目になります。
00:05:31そして定番のSelenium。
00:05:33JSの描画はできますが、
00:05:36動作が遅く、手動での設定も多い。
00:05:38非同期ワークフローの拡張には苦労するでしょう。
00:05:42CrawlForAIは内部でPlaywrightをラップし、
00:05:44明快な非同期APIを提供しています。
00:05:46もし静的データ向けの
00:05:48伝統的なクローラーを作るなら、
00:05:49既存のツールで十分かもしれません。
00:05:52しかし、AIシステムや
00:05:54RAG、自律型エージェントを構築するなら、
00:05:56CrawlForAIはまさにそのために作られた、
00:06:00非常にクールなAIツールです。
00:06:02ただ巡回するだけでなく、データを準備し、
00:06:04LLMが必要とする形に整えてくれます。
00:06:06以上がCrawlForAIの紹介でした。
00:06:08AIに関心があるなら、チェックする価値は十分にあります。
00:06:11その速さには本当に驚かされました。
00:06:14非常に強力なツールです。
00:06:15RAG形式のパイプラインを構築中なら、
00:06:17データをクリーンにLLMへ送ることができるでしょう。
00:06:20また次の動画でお会いしましょう。