当前位置:首页 > 科技  > 软件

直接把任意网站变为 API 接口?Firecrawl有点牛了!

来源: 责编: 时间:2024-07-19 07:56:08 339观看
导读Hello,大家好,我是 Sunday。最近看到了一个爬虫类框架:firecrawl 号称 可以抓取任何网站并将其转换为干净的 markdown 或结构化数据。并且可以直接通过 Node 进行部署。看这样的描述有点厉害了,所以,咱们今天就来看看这个

Hello,大家好,我是 Sunday。oiN28资讯网——每日最新资讯28at.com

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

看这样的描述有点厉害了,所以,咱们今天就来看看这个 firecrawloiN28资讯网——每日最新资讯28at.com

01:什么是 firecrawl

firecrawl 是一种 API 服务,它获取 URL、对其进行抓取并将其转换为干净的 markdown 或结构化数据。我们会抓取所有可访问的子页面并为您提供每个子页面的干净数据。无需站点地图。oiN28资讯网——每日最新资讯28at.com

目前 Firecrawl 开源 3周 的时间,已经有了 7.9K 的 star 数,可以说是一个优秀的项目了oiN28资讯网——每日最新资讯28at.com

图片图片oiN28资讯网——每日最新资讯28at.com

获取秘钥在这里注册并获取:https://www.firecrawl.dev/pricingoiN28资讯网——每日最新资讯28at.com

有了秘钥之后,可以直接基于 Node 包创建项目即可:oiN28资讯网——每日最新资讯28at.com

  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 intoconst 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, // 获取每个搜索结果的页面内容  },});


oiN28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-101703-0.html直接把任意网站变为 API 接口?Firecrawl有点牛了!

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 为什么StampedLock会导致CPU100%?

下一篇: 深入理解 JavaScript 中的 With 语句

标签:
  • 热门焦点
  • Mate60手机壳曝光 致敬自己的经典设计

    8月3日消息,今天下午博主数码闲聊站带来了华为Mate60的第三方手机壳图,可以让我们在真机发布之前看看这款华为全新旗舰的大致轮廓。从曝光的图片看,Mate 60背后摄像头面积依然
  • 影音体验是真的强 简单聊聊iQOO Pad

    大公司的好处就是产品线丰富,非常细分化的东西也能给你做出来,例如早先我们看到了新的vivo Pad2,之后我们又在iQOO Neo8 Pro的发布会上看到了iQOO的首款平板产品iQOO Pad。虽
  • 天猫精灵Sound Pro体验:智能音箱没有音质?来听听我的

    这几年除了手机作为智能生活终端最主要的核心之外,第二个可以成为中心点的产品是什么?——是智能音箱。 手机在执行命令的时候有两种操作方式,手和智能语音助手,而智能音箱只
  • 石头自清洁扫拖机器人G10S评测:多年黑科技集大成之作 懒人终极福音

    科技圈经常能看到一个词叫“缝合怪”,用来形容那些把好多功能或者外观结合在一起的产品,通常这样的词是贬义词,但如果真的是产品缝合的好、缝合的实用的话,那它就成了中性词,今
  • 6月安卓手机好评榜:魅族20 Pro蝉联冠军

    性能榜和性价比榜之后,我们来看最后的安卓手机好评榜,数据来源安兔兔评测,收集时间2023年6月1日至6月30日,仅限国内市场。第一名:魅族20 Pro好评率:95%5月份的时候魅族20 Pro就是
  • 掘力计划第 20 期:Flutter 混合开发的混乱之治

    在掘力计划系列活动第20场,《Flutter 开发实战详解》作者,掘金优秀作者,Github GSY 系列目负责人恋猫的小郭分享了Flutter 混合开发的混乱之治。Flutter 基于自研的 Skia 引擎
  • 服务存储设计模式:Cache-Aside模式

    Cache-Aside模式一种常用的缓存方式,通常是把数据从主存储加载到KV缓存中,加速后续的访问。在存在重复度的场景,Cache-Aside可以提升服务性能,降低底层存储的压力,缺点是缓存和底
  • 一篇聊聊Go错误封装机制

    %w 是用于错误包装(Error Wrapping)的格式化动词。它是用于 fmt.Errorf 和 fmt.Sprintf 函数中的一个特殊格式化动词,用于将一个错误(或其他可打印的值)包装在一个新的错误中。使
  • 从零到英雄:高并发与性能优化的神奇之旅

    作者 | 波哥审校 | 重楼作为公司的架构师或者程序员,你是否曾经为公司的系统在面对高并发和性能瓶颈时感到手足无措或者焦头烂额呢?笔者在出道那会为此是吃尽了苦头的,不过也得
Top