
AutoGPT Platform Firecrawl Scrape 积木单页面抓取、内容抽取与反爬绕过实战指南【免费下载链接】AutoGPTAutoGPT is the vision of accessible AI for everyone, to use and to build on. Our mission is to provide the tools, so that you can focus on what matters.项目地址: https://gitcode.com/GitHub_Trending/au/AutoGPTFirecrawl Scrape 是 AutoGPT Platform 中用于抓取单个网页并抽取结构化内容的核心搜索类积木Block。它基于 Firecrawl 云服务可自动完成 JavaScript 渲染、反爬绕过、主内容过滤与多格式输出是搭建文章提取、价格监控、内容备份等自动化 Agent 的最短路径。读完本文你将掌握该积木的全部输入输出参数、其 Python 源码实现原理、调用方式与实际成本计量规则。本文知识来源与仓库对应关系本文以官方积木文档 Firecrawl Scrape 为骨架展开并结合仓库内以下源码进行印证与深度解读积木实现firecrawl/scrape.py输出格式枚举firecrawl/_api.py凭证与成本配置firecrawl/_config.py格式转换工具firecrawl/_format_utils.py同目录下还提供 Firecrawl 系列的 crawl、extract、map、search 等其他积木文档可与本文配合阅读。Firecrawl Scrape 是什么功能定位根据 scrape.md 的定义Firecrawl Scrape 会抓取一个网站在**绕过各类反爬拦截器anti-bot measures**的前提下提取网页的综合数据。从源码实现看它被归类为BlockCategory.SEARCHBlock 的全局标识 id 为ac444320-cf5e-4697-b586-2604c17a3e75其描述与文档完全一致Firecrawl scrapes a website to extract comprehensive data while bypassing blockers.见 scrape.py。适用边界Scrape 是单页抓取一次只处理一个 URL。若需要抓取整个站点并遵循 robots.txt 递归遍历页面请使用同目录下的Crawl积木若要从页面中进一步抽取结构化数据JSON/键值对可用Extract积木需要把自然语言搜索词转换为 URL 列表时可用Search与Map积木。工作原理How it works按照 scrape.md 的描述该积木的核心工作流程可以归纳为三点调用 Firecrawl 的 scraping API从单个 URL 提取内容在云端自动完成JavaScript 渲染并绕过反爬虫防护支持以多种格式返回内容包括 markdown、HTML 与截图screenshot。同时你可以通过配置项控制输出格式、是否仅保留主内容过滤页头、导航、页脚并为动态页面设置等待时间。积木最终返回包括抽取内容、页面中发现的链接以及可选的变更追踪change tracking数据在内的综合结果。源码级运行链路在 scrape.py 中run()方法的执行链路是app FirecrawlApp(api_keycredentials.api_key.get_secret_value()) scrape_result app.scrape( input_data.url, formatsconvert_to_format_options(input_data.formats), only_main_contentinput_data.only_main_content, max_ageinput_data.max_age, wait_forinput_data.wait_for, )可以看到它直接实例化官方firecrawl.FirecrawlApp并把积木入参透传给 SDK 的app.scrape(...)。此处值得注意两点细节凭证处理API Key 来自用户的APIKeyCredentials对象并通过get_secret_value()解包 SecretStr保证密钥不落日志格式转换formats需要先经过convert_to_format_options()转换见 _format_utils.py其中screenshotfullPage会被特殊处理成ScreenshotFormat(typescreenshot, full_pageTrue)其余格式直接传递字面量。输出分发逻辑抓取成功后run()先无条件产出完整的data字典然后按你选择的每个格式依次 yield 对应端口见 scrape.py选择的 format对应的输出端口markdownmarkdownhtmlhtmlrawHtmlraw_htmllinkslinksscreenshotscreenshotscreenshotfullPagescreenshot_full_pagejsonjson_datachangeTrackingchange_tracking注意源码中SCREENSHOT_FULL_PAGE分支实际读取的是scrape_result.screenshot字段再写入screenshot_full_page输出端口见 scrape.py即整页截图与普通截图共享 Firecrawl 返回的同一字段区别只在于请求时是否设置full_pageTrue。输入参数详解Inputs下表完整收录 scrape.md 定义的输入项并补充源码中可见的默认值Input描述类型必填默认值url要抓取的 URLstr是无limit要爬取的页面数量int否10only_main_content仅返回页面主体内容排除页头、导航、页脚等bool否Truemax_age页面最大年龄毫秒默认 1 小时int否36000001 小时wait_for抓取前等待的毫秒数让页面有充足时间加载int否200formats抓取结果格式List[enum]否[markdown]各参数使用建议url必填传入要抓取的网页地址。建议以https://开头避免重定向造成意外结果若目标页面需要登录或 Cookie 才可访问Scrape 可能返回受限内容可考虑在 URL 中带上可公开访问的直链。limit虽然 Scrape 面向单页但该参数由官方 SDK 接受并保留默认 10用于兼容将来对多页的扩展语义实际单页抓取只会消耗 1 个 Firecrawl 积分。only_main_contentTrue默认开启这是获得干净正文的关键开关。开启后 Firecrawl 会剥离头部、导航栏、侧边栏与页脚等噪音最适合做文章正文抽取若你要分析整页布局结构则应显式改为False。max_age单位为毫秒默认3600000即 1 小时。它的语义是缓存新鲜度阈值当抓取请求到达时如果存在年龄小于该值的缓存结果会被复用从而节省抓取成本数值越小越倾向于实时抓取新页面。适合价格监控这类对时效敏感的场景。wait_for单位为毫秒默认200。它让无头浏览器在页面加载后额外等待一段时间再抓取 DOM特别适用于依赖异步请求渲染内容的单页应用SPA。若页面内容迟迟不出现可以尝试调大例如3000等待 3 秒。formats默认为[markdown]。可自由组合下列 8 种取值每选一种对应输出端口便会有数据formats 支持的取值来自 _api.py取值说明对应输出markdown清洗后的 Markdown 文本默认markdownhtml经过处理的 HTMLhtmlrawHtml页面原始未处理 HTMLraw_htmllinks页面上发现的所有链接linksscreenshot视口截图返回 URL 或图片数据screenshotscreenshotfullPage整页长截图screenshot_full_pagejsonFirecrawl 抽取出的 JSON 数据json_datachangeTracking用于追踪页面随时间变化的快照信息change_tracking经验做法默认只勾选你真正需要的格式。每多选一个格式都会增加响应体大小与处理耗时对纯文本抽取markdown一个就足够。输出参数详解Outputs下表完整收录 scrape.md 定义的输出项Output描述类型error抓取失败时的错误信息strdata抓取的综合结果Dict[str, Any]markdown抓取结果的 Markdownstrhtml抓取结果的 HTMLstrraw_html抓取结果的原始 HTMLstrlinks抓取结果中的链接List[str]screenshot抓取结果的截图strscreenshot_full_page抓取结果的整页截图strjson_data抓取结果的 JSON 数据Dict[str, Any]change_tracking抓取结果的变更追踪数据Dict[str, Any]使用要点data是总输出每次执行都会产出包含 Firecrawl 原始返回对象其余字段视你选择的formats按需产出。在积木编辑器的画布上若某次运行因未勾选对应 format 而未输出某端口则该端口保持空值——因此在构建下游逻辑时建议先用条件分支判断端口是否有数据。error默认值为空字符串见 scrape.py失败时携带具体错误文本可用于将失败分支接到重试或通知节点。成本计量每次运行约 $0.001抓取是有成本的第三方云服务理解计费对你的 Agent 预算控制很重要。在 scrape.py 中明确写入# Firecrawl bills 1 credit (~$0.001) per scraped page; scrape is a # single-page operation. self.merge_stats( NodeExecutionStats(provider_cost0.001, provider_cost_typecost_usd) )即在代码层面每次 Scrape 运行会被计为0.001 USD的 provider cost并在记账对账阶段通过merge_stats写入NodeExecutionStats.provider_cost。同时在 _config.py 中积木按1000 平台积分 ≈ 1 USD的费率定义了with_base_cost(1000, BlockCostType.COST_USD)并注释说明平台积分与 Firecrawl 积分大致为 1:1 的关系。整体换算逻辑是每次单页抓取消耗 1 个 Firecrawl 积分约 $0.001即约 1 个平台积分。该估算按 Firecrawl 公开计费单位折算作为预算提醒而非实时账单。配置 Firecrawl API 密钥Firecrawl 是云端 SaaS 服务使用前必须配置 API Key前往 Firecrawl 控制台创建账号并生成 API Key在 AutoGPT Platform 中添加名为FIRECRAWL_API_KEY的 API Key 凭证环境变量名定义见 _config.py其 provider 描述为 Web scraping and crawling在画布中放置 Firecrawl Scrape 积木并在其凭证输入中选择已添加的密钥填入url后即可运行。凭证属于平台侧的APIKeyCredentials类型。在源码中每次运行时通过FirecrawlApp(api_keycredentials.api_key.get_secret_value())完成注入密钥仅在使用时解包不会在请求日志中明文暴露。典型应用场景Possible use cases官方文档给出了三个可直接落地到 Agent 的场景均可通过在编辑器中连接 Scrape 积木与文本处理、定时触发或存储节点实现文章提取Article Extraction抓取新闻或博客文章并提取干净、可读的正文内容作为 LLM 的上下文输入或摘要数据源。推荐参数组合url https://example.com/article formats [markdown] only_main_content true max_age 3600000 wait_for 200下游把markdown输出接到 LLM 文本积木或数据保存节点即可完成网页 → 干净正文 → 摘要/归档流水线。价格监控Price Monitoring定时例如每小时由 Scheduler 触发抓取商品详情页提取价格字段并对比历史数据。推荐参数组合formats [markdown, json] max_age 0 # 尽量绕过缓存获取最新价格配合changeTracking格式或下游的比对节点即可实现价格随时间变化的追踪提醒。内容备份Content Backup将重要网页抓取为 Markdown 并写入存储便于离线查阅与长期归档。推荐参数组合formats [markdown, links] # 同时保留页面内链接以便递归归档 only_main_content true常见问题与调优清单页面返回空白或缺少动态内容动态渲染的 SPA 页面内容可能晚于默认的 200ms 出现请逐步调大wait_for如 1000/3000ms重试。需要实时数据却拿到旧结果检查max_age将其调小甚至设为0可强制获取新页面但会降低缓存命中率、提高调用成本。只想抽取正文却混入导航噪音确认only_main_content为True。下游迟迟拿不到某字段确认该字段对应的 format 已被勾选例如拿html必须先勾选html、拿整页截图必须先勾选screenshotfullPage。运行失败且error非空先确认凭证有效、URL 可公开访问再结合error文本排查是否被目标站点拦截或超出 Firecrawl 配额。成本顾虑每次 Scrape 执行约合 $0.001如大规模跑批建议优先开启缓存保留默认max_age并只请求最小必要格式。结语Firecrawl Scrape 把JavaScript 渲染、反爬绕过、主内容过滤、多格式输出这些原本需要自建爬虫的复杂能力封装成了一个可在画布上即插即用的积木。通过本文给出的输入输出参数表、源码运行链路与场景化参数组合你可以直接把它接入 AutoGPT Platform 的 Agent 流程快速构建文章提取、价格监控、内容备份等自动化应用进一步需要站点级递归抓取时可参考同目录的 Firecrawl Crawl 积木文档 crawl.md 继续扩展。【免费下载链接】AutoGPTAutoGPT is the vision of accessible AI for everyone, to use and to build on. Our mission is to provide the tools, so that you can focus on what matters.项目地址: https://gitcode.com/GitHub_Trending/au/AutoGPT创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考