11.8k Star!强大的爬虫工具,让你轻松获取任意网站数据!

2025-03-03 21:42:32 47点赞 360收藏 7评论

面对互联网上各种各样信息,网络爬取成为我们从海量信息中获取数据的重要手段。

然而,对于小白或非技术人员来说,使用爬虫工具常常让它们望而却步。

无独有偶,今天在 GitHub Treding 榜单上发现一款开源且强大的的 Web 爬虫工具:Firecrawl

项目介绍

Firecrawl:它能够从任意网站链接中爬取到网站的内容并将其转换为 Markdown 或结构化数据。

甚至能抓取到网站所有可访问的子页面,并为你提供每个页面的干净数据。无需站点地图。

图片图片

另外,还提供了易于使用且统一的 API,支持本地部署或在线使用,同时还支持与各种工具集成使用,如 Langchain、Dify、Flowise 等。

项目开源至今,已经获得了 11.8k Star 数,多次登榜 GitHub Treding 可以说是一款非常优秀的项目。

使用指南

方式一:在线体验

在其官网上可直接在线免费体验,提供了三种模式:

  • Single URL:仅抓取指定的 URL,而不抓取子页面。

  • Crawl:抓取 URL 及其所有可访问的子页面。

  • Map:在几秒钟内输出所有网站的网址。

图片图片

方式二:使用 API

FireCrawl 提供易于使用的 API,但需要先在 Firecrawl 官网上注册并获取 API 密钥。

自行托管后台服务提供了 API 和 Python、Node 的 SDK,以及和与现有一些 AI 工具集成,如 Langchain、Dify、Flowise、Llama Index 等

另外,也可以在本地运行,可在官网上查看详细部署指南。

使用方式

当获取到密钥之后,以使用 Node 为例,简单下如何使用。

  1. 安装依赖包;

npm install @mendable/firecrawl-js

  1. 将 API 密钥设置为环境变量 FIRECRAWL_API_KEY

  2. 如果想爬取单个 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 提取,轻松地从任何 URL 中提取结构化数据。

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("Hacker News上的前5个故事"),}); 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 // 获取每个搜索结果的页面内容 }});

写在最后

以上便是 Firecrawl 工具的详细介绍。

目前,项目一直在快速迭代更新很多实用的功能,逐步完善并稳定。

如果你需要为大语言模型训练、RAG 提供数据,相信这款爬虫工具,能大大显著提升你的效率。

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起
7评论

  • 精彩
  • 最新
  • 爬虫用的好,镯子戴上好 [喜极而泣]

    校验提示文案

    提交
    看你怎么定义好了。。。。。

    校验提示文案

    提交
    能发现吗

    校验提示文案

    提交
    还有2条回复
    收起所有回复
  • 门槛有点高,小白看得一愣一愣

    校验提示文案

    提交
  • 微信可以吗

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
360
扫一下,分享更方便,购买更轻松