Documentation Index
Fetch the complete documentation index at: https://student-213fb9fc.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Firecrawl は、さまざまな複雑さのウェブサイトをスクレイピングするために、複数の種類のプロキシを提供しています。プロキシの種類は、proxy パラメータで指定できます。
Firecrawl は 3 種類のプロキシをサポートしています:
- basic: ほとんどのサイトのスクレイピングに適したプロキシ。高速で、通常は問題なく動作します。
- enhanced: 複雑なサイトをプライバシーを維持しつつスクレイピングするための強化されたプロキシ。速度は遅くなりますが、一部のサイトではより高い信頼性で動作します。
- auto: basic プロキシが失敗した場合、Firecrawl が自動的に enhanced プロキシで再試行します。enhanced での再試行が成功した場合、そのスクレイピングには 5 クレジットが消費されます。最初の basic での試行が成功した場合は、通常のクレジット消費のみとなります。
プロキシを指定しない場合、Firecrawl はデフォルトで auto を使用します。
複雑な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 モードを使用することで、クレジットの使用量を最適化できます。