尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
用 Llama 4 Maverick 构建网页信息提取器:SerpAPI + Firecrawl 的智能 URL 筛选与结构化提取实战
网页爬虫后端AI 应用【免费下载链接】firecrawlThe web data API to search, scrape, and interact at scale. 项目地址https://gitcode.com/GitHub_Trending/fi/firecrawl点击查看免费下载本篇文章以 Firecrawl 官方仓库examples/llama-4-maverick-web-extractor/目录下的完整示例为核心讲解如何组合Llama 4 Maverick经 Together AI 调用、SerpAPI与Firecrawl Extract API自动完成输入公司名 → Google 搜索 → LLM 智能筛选 URL → 结构化提取网页信息的完整链路。读完本文你将掌握这套可复制的 Agent 式信息提取脚手架并理解 Firecrawl Extract 接口底层的关键参数语义。工具概览一条自动化的搜索—筛选—提取流水线该示例是一个命令行 Python 脚本核心思路是把传统的手工工作流搜索、挑选可信来源、阅读并整理信息拆成三个可独立替换的环节搜索环节通过 SerpAPI 调用 Google Search获取某个公司的实时搜索结果标题、链接、摘要。筛选环节把搜索结果喂给 Llama 4 Maverick 大模型让模型按优先官方来源、排除社交链接、最多 3 条等规则选出最相关的 URL。提取环节把选中的 URL 交给 Firecrawl 的/v1/extract接口用自然语言 prompt 提取结构化信息并轮询结果直到任务完成。整个脚本在终端中以彩色日志输出每一步的进度完整脚本非常适合作为LLM Agent 搜索 API 网页数据 API组合开发的入门模板。功能特性官方 READMEREADME列出了四项核心能力结合源码可以进一步展开特性对应实现使用 SerpAPI 自动执行 Google 搜索search_google()函数调用GoogleSearch并返回organic_results使用 Llama 4 Maverick 智能筛选 URLselect_urls_with_gemini()函数构造约束性 prompt 让模型输出selected_urls使用 Firecrawl 进行结构化数据提取extract_company_info()调用 Firecrawl/v1/extract接口彩色控制台输出提升可读性Colors类定义 8 种 ANSI 颜色码贯穿所有日志值得注意的是源码中筛选函数名为select_urls_with_gemini历史命名实际调用的是meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8模型通过together库的client.chat.completions.create完成推理这一点以当前仓库源码为准。前置条件运行前需要准备以下环境与密钥Python 3.8Together AI API key用于调用 Llama 4 Maverick 模型变量名TOGETHER_API_KEYSerpAPI API key用于 Google 搜索变量名SERP_API_KEYFirecrawl API key用于结构化提取变量名FIRECRAWL_API_KEY脚本在启动时会通过os.getenv读取这三个环境变量缺失时会在终端打印红色错误/警告信息见错误处理一节。安装步骤1. 获取仓库git clone https://gitcode.com/GitHub_Trending/fi/firecrawl.git cd firecrawl仓库采用 monorepo 结构本示例位于examples/llama-4-maverick-web-extractor/目录。2. 安装依赖pip install -r requirements.txtrequirements.txt文件包含 4 个依赖包together0.2.5 python-dotenv1.0.0 requests2.31.0 google-search-results2.4.2together官方 Together AI Python SDK用于调用 Llama 4 Maverickpython-dotenv从.env文件加载环境变量脚本顶部调用load_dotenv()requests直接请求 Firecrawl REST API该示例并未使用官方 Firecrawl SDK而是手写 HTTP 调用便于理解接口语义google-search-resultsSerpAPI 官方 Python 包from serpapi.google_search import GoogleSearch。3. 配置 API 密钥cp .env.example .env然后编辑.env文件填入三个密钥TOGETHER_API_KEYyour_together_ai_key SERP_API_KEYyour_serpapi_key FIRECRAWL_API_KEYyour_firecrawl_key脚本通过load_dotenv()在启动时读取该文件因此密钥不会硬编码在源码中。使用方法与运行示例在examples/llama-4-maverick-web-extractor/目录下执行python llama-4-maverick-extractor.py脚本的运行流程main()函数依次为提示输入公司名称询问希望提取的具体信息objective搜索相关 URL提取并结构化指定信息展示结果。官方示例演示$ python llama-4-maverick-extractor.py Enter the company name: Tesla Enter what information you want about the company: latest electric vehicle models and their prices运行期间终端会依次出现Searching Google for Tesla...、Calling Together AI model...、Waiting for extraction to complete...等彩色日志最终输出结构化的提取结果JSON缩进格式化。深入源码三步流水线的底层实现第一步SerpAPI 搜索search_google()函数脚本第 3438 行构造一个GoogleSearch查询对象search GoogleSearch({q: query, api_key: serp_api_key}) return search.get_dict().get(organic_results, [])它只保留organic_results自然搜索结果列表每条结果包含title、link、snippet三个字段这些字段稍后会作为上下文喂给 LLM。第二步Llama 4 Maverick 智能 URL 筛选select_urls_with_gemini()函数是该示例的精华。它把搜索结果压缩为[{title, link, snippet}]列表然后构造一个约束极强的 prompt优先官方公司网站、文档和新闻稿只选择与请求主题直接相关的内容返回纯 JSON{selected_urls: [url1, url2]}排除 Twitter、LinkedIn、Facebook 等社交链接LinkedIn 明确标注无法访问最多 3 条最相关 URL官方来源优先然后是可信新闻/行业来源禁止输出 JSON 以外的任何文本。随后调用 Together AIresponse client.chat.completions.create( modelmeta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8, messages[{role: user, content: prompt}], )模型返回后代码做了多层容错解析脚本第 82124 行用正则\{[\s\S]*selected_urls[\s\S]*\}从响应中提取 JSON 片段若响应带 Markdown 代码围栏json则剥离开头和json标识优先json.loads解析解析失败则降级为按行匹配 http/https 开头的文本解析最后统一清洗 URL去掉/*后缀、去除尾部/、过滤空值。第三步Firecrawl Extract 结构化提取extract_company_info()直接通过requests调用 Firecrawl 的 v1 接口payload { urls: urls, prompt: prompt for company, enableWebSearch: True } response requests.post( https://api.firecrawl.dev/v1/extract, headersheaders, jsonpayload, timeout120 )这里用到了三个关键参数在 Firecrawl 仓库的 v1 类型定义apps/api/src/controllers/v1/types.ts中均有明确约束参数类型仓库源码中的约束/语义urls字符串数组url.array().max(10)即单次请求最多 10 个 URLbeta 期限制prompt字符串z.string().max(10000)最大 10000 字符即提取目标描述enableWebSearch布尔z.boolean().prefault(false)默认关闭开启后可让提取器在网络中补充搜索相关内容源码中还隐藏了一个值得注意的实现细节enableWebSearch打开时会被转换为allowExternalLinks obj.allowExternalLinks || obj.enableWebSearch即允许提取器访问用户提供 URL 之外的站外链接同时 schema 通过.refine(obj obj.urls || obj.prompt)校验urls与prompt至少提供一个。也就是说该示例把给定 URL 列表 开启站外补充搜索两者叠加提高了信息召回率。poll_firecrawl_result()则是典型的异步任务轮询模式Extract 接口先返回{id: extraction_id}随后客户端每interval秒默认 10 秒示例调用处传 5 秒GEThttps://api.firecrawl.dev/v1/extract/{extraction_id}直到data.get(success) and data.get(data)成立即提取完成并拿到结构化结果轮询上限为max_attempts次示例调用处传 120 次每次 GET 超时 30 秒。这与仓库路由中/extract/:jobId的extractStatusController设计apps/api/src/routes/v1.ts一致——Firecrawl 的 Extract 是提交任务 查询状态的两段式接口。错误处理设计官方 README 承诺了全面的错误处理源码逐一印证覆盖 5 类场景缺失 API key启动时对TOGETHER_API_KEY、FIRECRAWL_API_KEY做if not检查并打印红色提示SERP_API_KEY未显式校验缺失时搜索会返回空结果并触发后续兜底。API 限流/网络问题requests.exceptions.Timeout120 秒超时与requests.exceptions.RequestException均被捕获并打印建议如减少 URL 数量或让 prompt 更具体。无效响应非 200 状态码、success: false、缺少id均会被识别并打印服务端错误信息。JSON 解析错误json.JSONDecodeError在提取 URL 和轮询结果两处都被捕获模型输出不规范时降级到文本解析。轮询超时达到max_attempts后打印Max polling attempts reached并返回None。main()对每一步返回空/失败都有防线无搜索结果、无选中 URL、提取失败都会提前return并给出尝试换一个公司或精炼 prompt的指引。扩展建议替换模型Together AI 调用处可以换成其他meta-llama或开源模型prompt 约束基本通用。接入官方 SDK本示例为教学采用手写 HTTP实际项目可使用 js-sdk / python-sdk 的extract方法仓库 python-sdk 与 js-sdk 均有对应实现参数语义与 v1 类型定义完全对齐。补充 schema 约束在payload中加入schema字段JSON Schema可让 Firecrawl 按指定结构返回数据见 v1 类型定义 中的normalizeSchemaForOpenAI校验链。纳入爬虫工作流若需要全站级的信息收集可进一步组合 Firecrawl 的 Crawl 能力仓库 v2 控制器 中有完整实现。许可证该示例遵循 MIT License可自由使用与修改仓库根目录 LICENSE 同样为 MIT 协议。赞分享网页爬虫后端AI 应用【免费下载链接】firecrawlThe web data API to search, scrape, and interact at scale. 项目地址https://gitcode.com/GitHub_Trending/fi/firecrawl点击查看免费下载相关推荐Firecrawl Rust SDK 实战指南用 Rust 完成网页抓取、结构化提取与整站爬取Firecrawl Rust SDK 实战指南用 Rust 完成网页抓取、结构化提取与整站爬取 Firecrawl Rust SDK 是 Firecrawl网页爬虫后端AI 应用Firecrawl MCP Server 结构化数据提取LLM 驱动的智能信息抽取终极指南Firecrawl MCP Server 结构化数据提取LLM 驱动的智能信息抽取终极指南 Firecrawl MCP Server 是一款功能强大的网页抓取MCP 服务网页爬虫AI 应用SwiftSoup数据提取实战从网页中抓取结构化信息的终极指南SwiftSoup数据提取实战从网页中抓取结构化信息的终极指南 想要快速从网页中提取结构化数据SwiftSoup是您的完美解决方案 这个纯Swift网页爬虫后端上一篇Home Assistant 中 Sonarr「Get series」动作的完整使用指南从 UI 到 YAML 与响应数据结构下一篇utterances安全标头HTTP安全头配置指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

J-Space Cognition Suite 集成指南:如何把推理增强 Skill 接入你的 AI 环境?完整 Skill 安装、API 接入与回归测试路径

J-Space Cognition Suite 集成指南:如何把推理增强 Skill 接入你的 AI 环境?完整 Skill 安装、API 接入与回归测试路径

J-Space Cognition Suite 集成指南:如何把推理增强 Skill 接入你的 AI 环境?完整 Skill 安装、API 接入与回归测试路径 【免费下载链接】J-Space-Cognition-Suite J-Space Cognition Suite — a model-agnostic inference-time control suite for deep r…

📅 2026/9/30 1:56:36
计算机网络工程实训报告:从VLAN规划到NAT配置的完整实践指南

计算机网络工程实训报告:从VLAN规划到NAT配置的完整实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📅 2026/9/30 1:56:36
参与开源ChartGPU:开发者入门指南——测试、验收脚本与贡献流程完全攻略

参与开源ChartGPU:开发者入门指南——测试、验收脚本与贡献流程完全攻略

参与开源ChartGPU:开发者入门指南——测试、验收脚本与贡献流程完全攻略 【免费下载链接】ChartGPU Beautiful, open source, WebGPU-based charting library 项目地址: https://gitcode.com/gh_mirrors/ch/ChartGPU ChartGPU 是一款基于 WebGPU 的高性能开源…

📅 2026/9/30 1:56:36
MORE NEWS

更多资讯

📰

Python后端AI专题33:评估召回与答案质量:Recall@K、MRR、nDCG 和引用正确率

Python后端AI专题33:评估召回与答案质量:RecallK、MRR、nDCG 和引用正确率回答错了,可能是相关 chunk 没召回、召回了却排太后、模型没使用证据,或引用了错误来源。只看“答案准确率 80%”无法定位该修分块、Embedding、Rerank 还…

📰

SAP单SQL语句导致HANA内存溢出:从告警到修复的完整排查实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

【更新至2025年】2000-2025年上市公司管理层治理能力指标数据

【更新至2025年】2000-2025年上市公司管理层治理能力指标数据 1、时间:2000-2025年 2、来源:上市公司年报 3、指标:证券代码、证券简称、统计截止日期、行业代码、行业名称、行业代码1、行业名称1、产权性质、实际控制人拥有上市公司所有权…

📰

eVTOL低空经济无人机AI图像处理系统:从方案到工程落地

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

全栈嵌入式开发:从MCU到云端的系统思维

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

Nightingale Meraki 接入:最小配置 3 步跑通与限流避坑指南

Nightingale Meraki 接入:最小配置 3 步跑通与限流避坑指南 【免费下载链接】nightingale Nightingale is to monitoring and alerting what Grafana is to visualization. 项目地址: https://gitcode.com/GitHub_Trending/ni/nightingale 新接入的 Meraki 网…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬