メインコンテンツへスキップ
Firecrawl は、さまざまな複雑さのウェブサイトをスクレイピングするために、複数の種類のプロキシを提供しています。プロキシの種類は、proxy パラメータで指定できます。

プロキシの種類

Firecrawl は 3 種類のプロキシをサポートしています:
  • basic: ほとんどのサイトのスクレイピングに適したプロキシ。高速で、通常は問題なく動作します。
  • enhanced: 複雑なサイトをプライバシーを維持しつつスクレイピングするための強化されたプロキシ。速度は遅くなりますが、一部のサイトではより高い信頼性で動作します。
  • auto: basic プロキシが失敗した場合、Firecrawl が自動的に enhanced プロキシで再試行します。enhanced での再試行が成功した場合、そのスクレイピングには 5 クレジットが消費されます。最初の basic での試行が成功した場合は、通常のクレジット消費のみとなります。
プロキシを指定しない場合、Firecrawl はデフォルトで auto を使用します。

Enhancedモードの使用

複雑なWebサイトをスクレイピングする場合は、Enhancedモードを有効にすることで、プライバシーを保ちつつ成功率を高められます。
from firecrawl import Firecrawl

firecrawl = Firecrawl(api_key='fc-YOUR-API-KEY')

# プロキシの方式を選択: 'basic' | 'enhanced' | 'auto'
doc = firecrawl.scrape('https://example.com', formats=['markdown'], proxy='auto')

print(doc.warning or 'ok')
注意: Enhancedプロキシリクエストを利用すると、1リクエストあたり5クレジットが消費されます。

再試行メカニズムとして Enhanced を使用する

一般的なパターンとして、まずはデフォルトのプロキシ設定でスクレイピングを行い、レスポンスの metadata.statusCode フィールドに特定のエラーステータスコード(401、403、または 500)が含まれている場合に、Enhanced モードで再試行します。これらのステータスコードは、サイト側でリクエストがブロックされている可能性を示します。
# pip install firecrawl-py

from firecrawl import Firecrawl

firecrawl = Firecrawl(api_key="YOUR_API_KEY")

# First try with basic proxy
try:
    content = firecrawl.scrape("https://example.com")
    
    # Check if we got an error status code
    status_code = content.get("metadata", {}).get("statusCode")
    if status_code in [401, 403, 500]:
        print(f"ステータスコード {status_code} を受け取りました。enhanced プロキシで再試行します")
        # Retry with enhanced proxy
        content = firecrawl.scrape("https://example.com", proxy="enhanced")
    
    print(content["markdown"])
except Exception as e:
    print(f"Error: {e}")
    # Retry with enhanced proxy on exception
    try:
        content = firecrawl.scrape("https://example.com", proxy="enhanced")
        print(content["markdown"])
    except Exception as e:
        print(f"Enhanced proxy also failed: {e}")
このアプローチにより、必要な場合にのみ Enhanced モードを使用することで、クレジットの使用量を最適化できます。