Hachi Blog
2026-02-20

WebページをMarkdownにしてくれるfirecrawlをローカルで試してみる

#crawler #firecrawl #tech

ChatGPTやGeminiに特定のサービスに関する最新の情報を聞くと、一応はWeb検索した上で答えてくれるのですが、周辺知識がどうしても足りないと感じます。 NotebookLMに公式ドキュメントの参考URLを渡して聞いてもいるのですが、中々URLを渡すのがしんどいです。

そんな中、firecrawlというLLM向けのWebクローラーを見つけたので、試してみます。

環境

  • WSL Ubuntu24.04 on Windows11

導入方法

GitHubのドキュメント通りに入れていきます。

  1. https://github.com/firecrawl/firecrawl からダウンロード

    git clone https://github.com/firecrawl/firecrawl.git
    
  2. .envファイルの作成

    必要最小限の設定のみ入れておきます。

    $ cat > .env << 'EOF'
    PORT=3002
    HOST=0.0.0.0
    USE_DB_AUTHENTICATION=false
    EOF
    
  3. ビルドと実行

    docker compose build
    docker compose up -d
    
  4. テスト(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
    ...
    

    動いていることを確認できた。

  5. テスト(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/)をみつけたので使ってみようと思う。