抓取
批量抓取
批量抓取多个URLs
批量抓取多个URLs
你现在可以同时批量抓取多个URL。它接受起始URL和可选参数作为参数。params参数允许你指定批量抓取作业的额外选项,例如输出格式。
工作原理
它与 /crawl
端点的工作方式非常相似。它提交一个批量抓取作业并返回一个作业ID,用于检查批量抓取的状态。
SDK提供了两种方法,同步和异步。同步方法将返回批量抓取作业的结果,而异步方法将返回一个作业ID,你可以使用该ID来检查批量抓取的状态。
使用方法
from firecrawl import FirecrawlApp
app = FirecrawlApp(api_key="fc-YOUR_API_KEY")
# 抓取多个网站:
batch_scrape_result = app.batch_scrape_urls(['firecrawl.dev', 'mendable.ai'], {'formats': ['markdown', 'html']})
print(batch_scrape_result)
# 或者,您可以使用异步方法:
batch_scrape_job = app.async_batch_scrape_urls(['firecrawl.dev', 'mendable.ai'], {'formats': ['markdown', 'html']})
print(batch_scrape_job)
# (异步) 然后可以使用作业ID来检查批量抓取的状态:
batch_scrape_status = app.check_batch_scrape_status(batch_scrape_job['id'])
print(batch_scrape_status)
响应
如果你使用的是SDK的同步方法,它将返回批量抓取作业的结果。否则,它将返回一个作业ID,你可以使用该ID来检查批量抓取的状态。
同步
Completed
{
"status": "completed",
"total": 36,
"completed": 36,
"creditsUsed": 36,
"expiresAt": "2024-00-00T00:00:00.000Z",
"next": "https://api.firecrawl.dev/v1/batch/scrape/123-456-789?skip=26",
"data": [
{
"markdown": "[Firecrawl Docs home page!...",
"html": "<!DOCTYPE html><html lang=\"en\" class=\"js-focus-visible lg:[--scroll-mt:9.5rem]\" data-js-focus-visible=\"\">...",
"metadata": {
"title": "使用 Groq Llama 3 构建 '与网站聊天' | Firecrawl",
"language": "en",
"sourceURL": "https://docs.firecrawl.dev/learn/rag-llama3",
"description": "了解如何使用 Firecrawl、Groq Llama 3 和 Langchain 来构建一个 '与您的网站聊天' 机器人。",
"ogLocaleAlternate": [],
"statusCode": 200
}
},
...
]
}
异步
然后你可以使用作业ID通过调用 /batch/scrape/{id}
端点来检查批量抓取的状态。这个端点应在作业仍在运行时或在作业刚刚完成后使用 因为批量抓取作业会在24小时后过期。
{
"success": true,
"id": "123-456-789",
"url": "https://api.firecrawl.dev/v1/batch/scrape/123-456-789"
}
带提取的批量抓取
你也可以使用批量抓取端点从页面中提取结构化数据。如果你想从一个URL列表中获得相同的结构化数据,这将非常有用。
from firecrawl import FirecrawlApp
app = FirecrawlApp(api_key="fc-YOUR_API_KEY")
# 批量抓取多个网站:
batch_scrape_result = app.batch_scrape_urls(
['https://docs.firecrawl.dev', 'https://docs.firecrawl.dev/sdks/overview'],
{
'formats': ['extract'],
'extract': {
'prompt': '从页面提取标题和描述。',
'schema': {
'type': 'object',
'properties': {
'title': {'type': 'string'},
'description': {'type': 'string'}
},
'required': ['title', 'description']
}
}
}
)
print(batch_scrape_result)
# 或者,你可以使用异步方法:
batch_scrape_job = app.async_batch_scrape_urls(
['https://docs.firecrawl.dev', 'https://docs.firecrawl.dev/sdks/overview'],
{
'formats': ['extract'],
'extract': {
'prompt': '从页面提取标题和描述。',
'schema': {
'type': 'object',
'properties': {
'title': {'type': 'string'},
'description': {'type': 'string'}
},
'required': ['title', 'description']
}
}
}
)
print(batch_scrape_job)
# (异步) 然后你可以使用任务ID来检查批量抓取的状态:
batch_scrape_status = app.check_batch_scrape_status(batch_scrape_job['id'])
print(batch_scrape_status)
响应
同步
Completed
{
"status": "completed",
"total": 36,
"completed": 36,
"creditsUsed": 36,
"expiresAt": "2024-00-00T00:00:00.000Z",
"next": "https://api.firecrawl.dev/v1/batch/scrape/123-456-789?skip=26",
"data": [
{
"extract": {
"title": "使用Groq Llama 3构建'与网站聊天' | Firecrawl",
"description": "学习如何使用Firecrawl、Groq Llama 3和Langchain构建一个'与您的网站聊天'机器人。"
}
},
...
]
}
异步
{
"success": true,
"id": "123-456-789",
"url": "https://api.firecrawl.dev/v1/batch/scrape/123-456-789"
}