位置:首页 > 技术资讯 > 网页转大模型数据的爬虫神器,助力AI应用与训练优化

网页转大模型数据的爬虫神器,助力AI应用与训练优化

时间:2026-07-25  |  作者:318050  |  阅读:0

在AI应用真正落地时,一个很现实的问题是:如何把网页上大量的内容,高效转换成大模型能直接读懂的格式?无论是做知识库构建,还是给RAG系统喂数据,这一步往往都卡在"数据清洗"上。手动复制粘贴?费时费力,还容易丢格式。用传统爬虫?处理JS渲染的页面又很头疼。

不过,最近火起来的一款工具——Firecrawl,倒是把这个痛点解决得很干脆。它能把任何网站一键转成干净的Markdown文档或结构化数据,而且集抓取、搜索、数据清洗、提取于一体,一个API搞定全套流程,专为LLM场景设计。

自动化爬虫神器:把网页转成大模型所需数据,助力 AI 应用与大模型训练全面优化!

Firecrawl 的特点

  • 即使网站没有提供站点地图(sitemap),也能自动抓取所有可访问的子页面。
  • 对于依赖Ja vaScript渲染内容的现代网站,也能顺利采集数据。
  • 返回的是干净、格式工整的Markdown文档,可以直接喂给LLM使用。
  • 抓取过程支持并行处理,效率很高,结果返回很快。
  • 内置缓存机制——除非内容有更新,否则不必重复搜索,节省资源和时间。
  • 由LLM工程师打造,输出的数据就是你想要的那种纯净格式。

最近,Firecrawl还上线了一个叫LLM Extract的新功能——借助大语言模型,直接从网页中提取你需要的结构化信息,进一步简化了数据处理的路径。

如何使用 Firecrewl

Firecrewl的使用方式非常多样,基本做到了"开箱即用"。既支持通过API或SDK直接集成,也可以在LangChain或Llama Index这类主流框架里直接调用,甚至支持本地部署。

  • API
  • Python SDK
  • Node SDK
  • Langchain Integration
  • Llama Index Integration
  • LangchainJS
  • Zapier

除了上述的云服务方式,Firecrewl也支持本地部署,方便数据不出网的场景。

Firecrewl 快速上手

前置条件

使用之前,需要先注册Firecrawl并获取API key。

一、使用 API

1. 抓取 URL

提交一个URL,就能抓取它和所有可访问的子页面。请求会返回一个任务ID,可以用来查询抓取进度。

curl -X POST https://api.firecrawl.dev/v0/crawl 
    -H 'Content-Type: application/json' 
    -H 'Authorization: Bearer YOUR_API_KEY' 
    -d '{
      "url": "https://mendable.ai"
    }'

调用成功后会返回一个 jobId

{ "jobId": "1234-5678-9101" }

2. 获取指定抓取任务的状态

使用任务ID来检查抓取进度并获取最终结果。

curl -X GET https://api.firecrawl.dev/v0/crawl/status/1234-5678-9101 
  -H 'Content-Type: application/json' 
  -H 'Authorization: Bearer YOUR_API_KEY'

成功调用后,返回的JSON会包含任务状态和抓取到的数据:

{
  "status": "completed",
  "current": 22,
  "total": 22,
  "data": [
    {
      "content": "Raw Content ",
      "markdown": "# Markdown Content",
      "provider": "web-scraper",
      "metadata": {
        "title": "Mendable | AI for CX and Sales",
        "description": "AI for CX and Sales",
        "language": null,
        "sourceURL": "https://www.mendable.ai/"
      }
    }
  ]
}

二、使用 Python SDK

1. 安装 Python SDK

pip install firecrawl-py

2. 抓取网站

from firecrawl import FirecrawlApp

app = FirecrawlApp(api_key="YOUR_API_KEY")

crawl_result = app.crawl_url('mendable.ai', {'crawlerOptions': {'excludes': ['blog/*']}})

# 获取 Markdown 内容
for result in crawl_result:
    print(result['markdown'])

3. 抓取单个 URL

如果只需抓取单个页面,可以用 scrape_url 方法,它会以字典形式返回抓取的数据。

url = 'https://example.com'
scraped_data = app.scrape_url(url)

三、使用 Node SDK

1. 安装 Node SDK

npm install @mendable/firecrawl-js

2. 抓取网站

使用 crawlUrl 方法,传入起始URL和可选参数。通过 params 可以指定爬取的最大页面数、允许的域名和输出格式等。

const crawlUrl = 'https://example.com';
const params = {
  crawlerOptions: {
    excludes: ['blog/'],
    includes: [], // lea ve empty for all pages
    limit: 1000,
  },
  pageOptions: {
    onlyMainContent: true
  }
};
const waitUntilDone = true;
const timeout = 5;
const crawlResult = await app.crawlUrl(
  crawlUrl,
  params,
  waitUntilDone,
  timeout
);

3. 抓取 URL

抓取单个URL时,使用 scrapeUrl 方法。

try {
  const url = 'https://example.com';
  const scrapedData = await app.scrapeUrl(url);
  console.log(scrapedData);

} catch (error) {
  console.error(
    'Error occurred while scraping:',
    error.message
  );
}

4. 从指定 URL 抽取结构化数据

借助LLM Extract功能,可以轻松地从任何URL提取结构化数据。Firecrawl支持zod模式来定义数据结构,非常灵活。

import FirecrawlApp from "@mendable/firecrawl-js";
import { z } from "zod";

const app = new FirecrawlApp({
  apiKey: "fc-YOUR_API_KEY",
});

// 定义要提取的数据结构
const schema = z.object({
  top: z
    .array(
      z.object({
        title: z.string(),
        points: z.number(),
        by: z.string(),
        commentsURL: z.string(),
      })
    )
    .length(5)
    .describe("Top 5 stories on Hacker News"),
});

const scrapeResult = await app.scrapeUrl("https://news.ycombinator.com", {
  extractorOptions: { extractionSchema: schema },
});

console.log(scrapeResult.data["llm_extraction"]);

5. 使用搜索查询

通过 search 方法,可以在搜索引擎中搜索短语,并获取排名靠前的结果及相应页面内容。

const query = 'what is mendable';
const searchResults = await app.search(query, {
  pageOptions: {
    fetchPageContent: true // 获取每个搜索结果的页面内容
  }
});

四、在 Langchain 中使用

Firecrawl以文档加载器的方式与Langchain集成,使用起来很方便。

1. 安装 firecrawl-py

pip install firecrawl-py

2. 使用 FireCrawlLoader

crawl 模式:抓取网站和所有可访问的子页面,并以Markdown格式返回每个子页面。

from langchain_community.document_loaders import FireCrawlLoader

loader = FireCrawlLoader(
    api_key="YOUR_API_KEY", 
    url="https://firecrawl.dev", 
    mode="crawl"
)

docs = loader.load()

scrape 模式:抓取单个网址,并以Markdown格式返回当前页面。

loader = FireCrawlLoader(
    api_key="YOUR_API_KEY",
    url="https://firecrawl.dev",
    mode="scrape",
)

data = loader.load()

五、在 Langchain JS 中使用

1. 安装 @mendableai/firecrawl-js

npm install @mendableai/firecrawl-js

2. 使用 FireCrawlLoader

import { FireCrawlLoader } from "langchain/document_loaders/web/firecrawl";

const loader = new FireCrawlLoader({
  url: "https://firecrawl.dev", // 要抓取的URL
  apiKey: process.env.FIRECRAWL_API_KEY, // 可选,默认读取环境变量 FIRECRAWL_API_KEY
  mode: "scrape", // 模式:"scrape" 抓取单个页面,"crawl" 抓取所有子页面
  params: {
    // 可选参数,参考Firecrawl API文档
    // 文档地址:https://docs.firecrawl.dev
  },
});

const docs = await loader.load();

Firecrawl官网上还贴出了5个实际使用示例,比如结合Groq Llama 3 API来实现"与网站对话"的功能。如果感兴趣,可以直接去看官方文档,里面提供了详细的实现步骤。

来源:整理自互联网
免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。

相关文章

更多

精选合集

更多

大家都在玩

热门话题

大家都在看

更多