Skip to main content

安装

要安装Firecrawl Go SDK,您可以使用go get:
Go
# 安装firecrawl-go包
go get github.com/mendableai/firecrawl-go

使用方法

  1. firecrawl.dev获取API密钥
  2. API key设置为FirecrawlApp结构体的参数。
  3. 设置API URL和/或将其作为参数传递给FirecrawlApp结构体。默认为https://api.firecrawl.dev
  4. 设置version和/或将其作为参数传递给FirecrawlApp结构体。默认为v1
以下是如何使用带有错误处理的SDK的示例:
Go
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作为参数,并以字典形式返回抓取的数据。
Go
// 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参数允许您为爬取任务指定其他选项,例如要爬取的最大页面数、允许的域名和输出格式。
Go
// 爬取一个网站
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作为参数,并返回爬取任务的当前状态。
Go
// 获取爬取任务状态
crawlStatus, err := app.CheckCrawlStatus("<crawl_id>")

if err != nil {
  log.Fatalf("Failed to get crawl status: %v", err)
}

fmt.Println(crawlStatus)

映射网站

使用MapUrl生成网站的URL列表。params参数允许您自定义映射过程,包括排除子域名或使用网站地图的选项。
Go
// 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返回的错误并引发适当的异常。如果在请求期间发生错误,将引发带有描述性错误消息的异常。