Documentation Index
Fetch the complete documentation index at: https://firecrawl.sec-lab.cn/llms.txt
Use this file to discover all available pages before exploring further.
要安装Firecrawl Go SDK,您可以使用go get:
# 安装firecrawl-go包
go get github.com/mendableai/firecrawl-go
使用方法
- 从firecrawl.dev获取API密钥
- 将
API key设置为FirecrawlApp结构体的参数。
- 设置
API URL和/或将其作为参数传递给FirecrawlApp结构体。默认为https://api.firecrawl.dev。
- 设置
version和/或将其作为参数传递给FirecrawlApp结构体。默认为v1。
以下是如何使用带有错误处理的SDK的示例:
import (
"fmt"
"log"
"github.com/google/uuid"
"github.com/mendableai/firecrawl-go"
)
func ptr[T any](v T) *T {
return &v
}
func main() {
// 使用你的API密钥初始化FirecrawlApp
apiKey := "fc-YOUR_API_KEY"
apiUrl := "https://api.firecrawl.dev"
version := "v1"
app, err := firecrawl.NewFirecrawlApp(apiKey, apiUrl, version)
if err != nil {
log.Fatalf("Failed to initialize FirecrawlApp: %v", err)
}
// 抓取一个网站
scrapeStatus, err := app.ScrapeUrl("https://firecrawl.dev", firecrawl.ScrapeParams{
Formats: []string{"markdown", "html"},
})
if err != nil {
log.Fatalf("Failed to send scrape request: %v", err)
}
fmt.Println(scrapeStatus)
// 爬取一个网站
idempotencyKey := uuid.New().String() // 可选的幂等性密钥
crawlParams := &firecrawl.CrawlParams{
ExcludePaths: []string{"blog/*"},
MaxDepth: ptr(2),
}
crawlStatus, err := app.CrawlUrl("https://firecrawl.dev", crawlParams, &idempotencyKey)
if err != nil {
log.Fatalf("Failed to send crawl request: %v", err)
}
fmt.Println(crawlStatus)
}
抓取单个URL
要使用错误处理抓取单个URL,请使用ScrapeURL方法。它接受URL作为参数,并以字典形式返回抓取的数据。
// Scrape a website
scrapeResult, err := app.ScrapeUrl("https://firecrawl.dev", map[string]any{
"formats": []string{"markdown", "html"},
})
if err != nil {
log.Fatalf("Failed to scrape URL: %v", err)
}
fmt.Println(scrapeResult)
爬取网站
要爬取网站,请使用CrawlUrl方法。它接受起始URL和可选参数作为参数。params参数允许您为爬取任务指定其他选项,例如要爬取的最大页面数、允许的域名和输出格式。
// 爬取一个网站
crawlStatus, err := app.CrawlUrl("https://firecrawl.dev", map[string]any{
"limit": 100,
"scrapeOptions": map[string]any{
"formats": []string{"markdown", "html"},
},
})
if err != nil {
log.Fatalf("Failed to send crawl request: %v", err)
}
fmt.Println(crawlStatus)
检查爬取状态
要检查爬取任务的状态,请使用CheckCrawlStatus方法。它接受任务ID作为参数,并返回爬取任务的当前状态。
// 获取爬取任务状态
crawlStatus, err := app.CheckCrawlStatus("<crawl_id>")
if err != nil {
log.Fatalf("Failed to get crawl status: %v", err)
}
fmt.Println(crawlStatus)
映射网站
使用MapUrl生成网站的URL列表。params参数允许您自定义映射过程,包括排除子域名或使用网站地图的选项。
// Map a website
mapResult, err := app.MapUrl("https://firecrawl.dev", nil)
if err != nil {
log.Fatalf("Failed to map URL: %v", err)
}
fmt.Println(mapResult)
错误处理
SDK处理Firecrawl API返回的错误并引发适当的异常。如果在请求期间发生错误,将引发带有描述性错误消息的异常。