Fetch web content via Firecrawl API.
Requires: pip install firecrawl-py (optional dependency)
Source code in src/symfonic/core/capabilities/firecrawl.py
| def __init__(
self,
api_key: str | None = None,
api_url: str | None = None,
) -> None:
self._api_key = api_key
self._api_url = api_url
|
fetch
async
fetch(url: str, *, timeout: float = 30.0) -> str
Fetch URL content. Raises CapabilityError on failure.
Source code in src/symfonic/core/capabilities/firecrawl.py
| async def fetch(self, url: str, *, timeout: float = 30.0) -> str:
"""Fetch URL content. Raises CapabilityError on failure."""
validate_url(url)
try:
return await asyncio.wait_for(
self._do_fetch(url), timeout=timeout
)
except TimeoutError as exc:
raise CapabilityError(
capability="FirecrawlFetcher",
cause=f"Timeout after {timeout}s fetching {url}",
code="timeout",
metadata={"url": url},
) from exc
except ImportError as exc:
raise CapabilityError(
capability="FirecrawlFetcher",
cause=(
"firecrawl-py is not installed. "
"pip install firecrawl-py"
),
code="missing_dependency",
) from exc
except CapabilityError:
raise
except Exception as e:
raise CapabilityError(
capability="FirecrawlFetcher",
cause=str(e),
code="fetch_error",
metadata={"url": url},
) from e
|