ChatGPTやGeminiに特定のサービスに関する最新の情報を聞くと、一応はWeb検索した上で答えてくれるのですが、周辺知識がどうしても足りないと感じます。 NotebookLMに公式ドキュメントの参考URLを渡して聞いてもいるのですが、中々URLを渡すのがしんどいです。
そんな中、firecrawlというLLM向けのWebクローラーを見つけたので、試してみます。
環境
- WSL Ubuntu24.04 on Windows11
導入方法
GitHubのドキュメント通りに入れていきます。
-
https://github.com/firecrawl/firecrawl からダウンロード
git clone https://github.com/firecrawl/firecrawl.git -
.envファイルの作成必要最小限の設定のみ入れておきます。
$ cat > .env << 'EOF' PORT=3002 HOST=0.0.0.0 USE_DB_AUTHENTICATION=false EOF -
ビルドと実行
docker compose build docker compose up -d -
テスト(Crawl)
/v1/crawlを使ってみる$ curl -X POST http://localhost:3002/v1/crawl \ -H 'Content-Type: application/json' \ -d '{ "url": "https://firecrawl.dev" }' { "success":true, "id":"019c78a1-bc93-73b6-a4a2-dbb670ce7d6f", "url":"http://localhost:3002/v1/crawl/019c78a1-bc93-73b6-a4a2-dbb670ce7d6f" } $ curl -X GET 'http://localhost:3002/v1/crawl/019c78a1-bc93-73b6-a4a2-dbb670ce ...動いていることを確認できた。
-
テスト(Scrape)
$ curl -X POST 'http://localhost:3002/v2/scrape' \ -H 'Content-Type: application/json' \ -d '{ "url": "https://docs.firecrawl.dev", "formats": ["markdown", "html"] }'
使ってみた感想
いくつかのサイトで使ってみたが、どうもメインコンテンツの抽出が弱い感じ。 ヘッダー、フッター等全部をとってしまう。 抽出対象から除外するタグの指定などもできるが、それぞれのページごとに指定するのは現実的ではないので、もうちょっとメインコンテンツの抽出が得意なソフトウェアを使いたい。。
trafilatura(https://trafilatura.readthedocs.io/en/latest/)をみつけたので使ってみようと思う。