直接通过 Node 部署,把任意网站变为 API 接口?firecrawl有点牛了!

最近看到了一个爬虫类框架:firecrawl 号称 可以抓取任何网站并将其转换为干净的 markdown 或结构化数据。 并且可以直接通过 Node 进行部署。 看这样的描述有点厉害了,所以,咱们今天就来看看这个 firecrawl01:什么是 firecrawlFirecrawl 是一种 API 服务,它获取 URL、对其进行抓取并将其转换为干净的 markdown 或结构化数据。

最近看到了一个爬虫类框架:firecrawl 号称 可以抓取任何网站并将其转换为干净的 markdown 或结构化数据。并且可以直接通过 Node 进行部署。

看这样的描述有点厉害了,所以,咱们今天就来看看这个 firecrawl

01:什么是 firecrawl

Firecrawl 是一种 API 服务,它获取 URL、对其进行抓取并将其转换为干净的 markdown 或结构化数据。我们会抓取所有可访问的子页面并为您提供每个子页面的干净数据。无需站点地图。

目前 Firecrawl 已经有了 26.2K 的 star 数,可以说是一个优秀的项目了

图片图片

02:如何使用 firecrawl

想要使用 firecrawl ,那么首先需要获取 API 秘钥。秘钥分为 收费 和 免费 两种,大家如果不在商业项目中使用,通过 免费计划 即可

图片图片

获取秘钥在这里注册并获取:https://www.firecrawl.dev/pricing

有了秘钥之后,可以直接基于 Node 包创建项目即可:

  1. 安装依赖包 npm install @mendable/firecrawl-js
  2. 将 API 密钥设置为命名的环境变量FIRECRAWL_API_KEY或将其作为参数传递给FirecrawlApp类
  3. 如要抓取单个 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);
}
  1. 如要爬取网站信息,可以直接通过 crawlUrl 方法。该方法以起始 URL 和可选参数作为参数。该params参数允许您为抓取作业指定其他选项,例如要抓取的最大页面数、允许的域和输出格式。
复制
const crawlUrl = "https://example.com";
const params = {
  crawlerOptions: {
    excludes: ["blog/"],
    includes: [], // leave empty for all pages
    limit: 1000,
  },
  pageOptions: {
    onlyMainContent: true,
  },
};
const waitUntilDone = true;
const timeout = 5;
const crawlResult = await app.crawlUrl(
  crawlUrl,
  params,
  waitUntilDone,
  timeout
);
  1. 可以通过 checkCrawlStatus 方法检查爬取状态
复制
const status = await app.checkCrawlStatus(jobId);
console.log(status);
  1. 使用 LLM 可自动格式化所有数据
复制
import FirecrawlApp from "@mendable/firecrawl-js";
import { z } from "zod";

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

// Define schema to extract contents into
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"]);
  1. 使用该 search 方法,您可以在搜索引擎中搜索查询并获取排名靠前的结果以及每个结果的页面内容。该方法将查询作为参数并返回搜索结果。
复制
const query = "what is mendable?";
const searchResults = await app.search(query, {
  pageOptions: {
    fetchPageContent: true, // 获取每个搜索结果的页面内容
  },
});

相关资讯

使用LLaMA 3.1、Firebase和Node.js,构建一个音控的智能厨房应用程序

译者 | 布加迪审校 | 重楼这篇指南逐步介绍了创建一个自动化的厨房助理的过程,附有语音命令、实时购物清单管理以及食谱建议。 我在本教程中将介绍创建一个智能厨房应用程序(Chent),它可以根据个性化偏好简化杂货清单管理。 该应用程序通过语音命令操作,简化了人机交互和添加商品。

三分钟部署自己的 DeepSeek R1 满血版,彻底告别服务器繁忙!

Hello,大家好,我是 Sunday。 网上有很多教大家部署 DeepSeek 的教程,但是大多数都是 小模型 部署,参数最多也就给你打到 14b。 这样的小模型相比满血版的 R1 简直 弱爆了。

中国算力大会,联想重磅发布两款明星算力新品

9月27日,为期3天的2024中国算力大会正式拉开帷幕。在大会异构智算产业生态联盟技术论坛上,联想集团正式发布新一代AI服务器联想问天WA7880a G3和联想AIPod应用部署解决方案两款重磅产品和解决方案。联想AI基础设施“一横五纵”的战略版图进一步丰富和完善。联想问天WA7880a G3是针对AI大模型训练推出的新一代AI服务器,具备多元算力、灵活配置和节能高效三大特点。它也是国内首款支持OAM 2.0模组的服务器,可兼容国内主流GPU厂商的OAM GPU;在配置选择上支持CPU和GPU之间单上行和双上行拓扑