网页爬虫后端AI 应用【免费下载链接】firecrawlThe web data API to search, scrape, and interact at scale. 项目地址https://gitcode.com/GitHub_Trending/fi/firecrawl点击查看免费下载本指南基于当前仓库中examples/gpt-4.1-web-crawler示例讲解如何用 GPT-4.1 驱动 Firecrawl 的 Map 与 Scrape 能力实现给定目标 → 自动发现相关页面 → 排序 → 提取结构化信息的完整智能爬虫流水线。读完本文你将掌握该示例的安装运行方式、每一步的底层实现原理并能基于仓库源码扩展自己的目标型信息采集脚本。示例概览什么是 GPT-4.1 Web CrawlerREADME 中描述了这个示例的核心定位一个由 GPT-4.1 驱动的智能网页爬虫它能够根据用户设定的目标objective主动在网站中寻找特定信息。与传统全站爬取再筛选的方式不同它的工作方式更像一个目标导向的检索代理语义化地图用 Firecrawl 的 Map 功能发现站点页面并基于目标推导出语义搜索词相关性排序让 GPT-4.1 对候选 URL 打分排序锁定最可能命中目标的页面结构化提取对排名靠前的页面逐个抓取与分析命中目标时返回干净、扁平的 JSON结果输出控制台直接打印格式化后的 JSON 结果。示例文件位于 examples/gpt-4.1-web-crawler核心脚本为 gpt-4.1-web-crawler.py依赖声明在 requirements.txt。环境准备README 列出的前提条件如下Python 3.8Firecrawl API Key用于站点 Map 与页面 ScrapeOpenAI API Key需具备 GPT-4.1 模型的访问权限。安装步骤分三步克隆仓库并进入示例目录git clone https://github.com/yourusername/gpt-4.1-web-crawler.git cd gpt-4.1-web-crawler安装依赖pip install -r requirements.txt配置环境变量将.env.example复制为.env填入两个 API Keycp .env.example .env.env中至少需要FIRECRAWL_API_KEY与OPENAI_API_KEY两个变量脚本通过python-dotenv的load_dotenv()加载它们见 gpt-4.1-web-crawler.py。依赖版本与当前仓库 SDK 的差异提示示例的 requirements.txt 固定了三个版本firecrawl0.11.0 openai1.14.0 python-dotenv1.0.0其中firecrawl0.11.0是较早期的 Python SDK 版本调用风格为app.map_url(url, params{...})、app.scrape_url(link, params{formats: [markdown]})的字典传参方式。而当前仓库中 apps/python-sdk 下的新版 SDK 已经改为显式关键字参数风格例如 v1/client.py 中的map_url(url, *, search..., ignore_sitemap..., limit..., timeout...)以及 scrape_url 的formats[...]等命名参数。若你在本项目环境中重跑该示例需要把params{...}写法替换为对应的关键字参数或直接沿用示例锁定的旧版依赖。运行方式与交互流程在示例目录执行python gpt-4.1-web-crawler.py程序会在控制台依次提示两个输入见 main()要爬取的网站 URL具体目标——你想从该网站获取什么信息。README 中的运行示例Enter the website to crawl: https://example.com Enter your objective: Find the companys leadership team with their roles and short bios输入后脚本依次执行四个阶段Map 站点 → 定位最相关页面 → 逐个 Scrape 并分析 → 命中目标则输出结构化 JSON。全程控制台带有 ANSI 彩色日志Colors类定义了 CYAN/YELLOW/GREEN/RED/MAGENTA/BLUE 六种颜色见 gpt-4.1-web-crawler.py方便观察每一阶段的进展与调试信息。阶段一用 GPT-4.1 推导语义搜索词并 Map 站点入口函数为find_relevant_page_via_map(objective, url, app, client)源码位置它是整条流水线的导航器。第 1 步目标 → 搜索词。脚本把用户目标包装成 prompt要求 GPT-4.1 只输出 12 个词的最佳搜索参数The map function generates a list of URLs from a website and it accepts a search parameter. Based on the objective of: {objective}, come up with a 1-2 word search parameter that will help us find the information we need. Only respond with 1-2 words nothing else.例如目标查找公司领导团队及其角色简介模型可能输出leadership或team这样的语义搜索词。第 2 步调用 Firecrawl Map。得到搜索词后调用app.map_url(url, params{search: map_search_parameter})。Map 接口会根据search参数对站点进行语义发现返回候选链接列表。从当前仓库 v1/client.py 的实现可以看到map_url除search外还支持ignoreSitemap跳过 sitemap.xml 处理、includeSubdomains包含子域名链接、sitemapOnly仅使用 sitemap.xml、limit最大返回 URL 数、timeout毫秒级请求超时默认 30000、useIndex、location等参数实际请求发送到/v1/map端点并携带Authorization: Bearer {api_key}头v1/client.py。返回结构对应 SDK 中的V1MapResponse模型包含success、links、error三个字段v1/client.py。第 3 步兼容多种响应结构。旧版 SDK 在不同场景下可能返回 dict、JSON 字符串或列表脚本对此做了防御式解析优先取urls或links键字符串则先json.loads列表则直接使用gpt-4.1-web-crawler.py同时还打印了Debug - Map response structure便于排查结构变化第 61 行。阶段二用 GPT-4.1 对候选 URL 进行相关性排序拿到 Map 返回的链接后脚本进入排序环节。它将目标与全部候选 URL 一起交给 GPT-4.1要求模型返回恰好 3 个对象的 JSON 数组每个对象包含url完整 URLrelevance_score0100 的相关性分数reason该 URL 与目标相关的简要理由。prompt 中给出了明确的输出模板gpt-4.1-web-crawler.py[ { url: https://example.com/about, relevance_score: 95, reason: Main about page containing company information }, ... ]脚本解析模型返回的 JSON 后取url字段构成后续抓取列表并把每个 URL 的分数与理由打印到控制台第 134-139 行。如果解析失败JSONDecodeError/KeyError则直接返回None主流程会给出考虑细化搜索参数或更换网站的提示第 258 行。阶段三逐页 Scrape 并验证目标是否命中排序完成后进入find_objective_in_top_pages(map_website, objective, app, client)源码位置。它取排名前 3 的链接逐个执行第 1 步抓取 Markdown 内容。调用app.scrape_url(link, params{formats: [markdown]})从响应中取scrape_result[markdown]作为待分析文本。从仓库 SDK 的实现看scrape_url的formats还支持html、rawHtml、content、links、screenshot、screenshotfullPage、extract、json、changeTracking等多种格式v1/client.py并且支持only_main_content仅提取主内容、wait_for、block_ads、proxy、actions页面交互动作等参数读者可按需扩展。第 2 步GPT-4.1 判定目标是否达成。脚本构造判定 prompt把目标与抓取到的 Markdown 一并交给模型Given the following scraped content and objective, determine if the objective is met. If it is, extract the relevant information in a simple and concise JSON format. Use only the necessary fields and avoid nested structures if possible. If the objective is not met with confidence, respond with Objective not met.模型被要求仅在高度确信目标达成时输出 JSONJSON 尽量简单扁平不附加任何解释或 Markdown 格式第 175-187 行。第 3 步清洗并解析 JSON。由于 LLM 输出可能夹带json代码块或解释性文字脚本做了多级清洗第 209-221 行先剥离代码块标记再用find({)/rfind(})截取首尾大括号之间的纯 JSON 片段最后json.loads解析。第 4 步失败回退。若模型返回 Objective not met 或 JSON 解析失败脚本打印提示并继续分析下一个链接全部页面分析完仍未命中则返回None。阶段四结果输出当某个页面命中目标时主流程会把解析出的字典用json.dumps(result, indent2)以缩进格式打印到控制台第 254 行。例如目标为查找公司领导团队及其角色简介时输出可能是{ ceo: Jane Doe, ceo_role: Chief Executive Officer, cto: John Smith, cto_role: Chief Technology Officer }如果三页都未命中则输出Unable to fulfill the objective with the available content.。全流程时序与可复用的扩展思路综合四个阶段完整调用链为用户输入(URL objective) → GPT-4.1 推导 1~2 词 search 参数 → Firecrawl Map(/v1/map, search...) 发现候选链接 → GPT-4.1 对 URL 打分排序取 top 3 → Firecrawl Scrape(/v1/scrape, formats[markdown]) 逐个抓取 → GPT-4.1 判定目标命中 → 清洗 → json.loads → 打印 JSON在此基础上可以从仓库源码出发做几类扩展扩大候选范围Map 阶段传入include_subdomains、limit等参数参考 map_url排序阶段让 GPT-4.1 返回更多 URL丰富抓取格式在scrape_url的formats中追加screenshot或rawHtml配合only_main_content减少噪声scrape_url结构化抽取升级当站点内容庞杂时可改用仓库 SDK 的extract能力promptschema见 V1ExtractParams由 Firecrawl 侧直接完成字段级抽取GPT-4.1 只负责目标解析与判定批量与异步新版 SDK 提供了v2下的异步客户端client_async.py其中同样实现了map_url与scrape_url的 async 版本适合需要并行抓取多个站点的场景。小结gpt-4.1-web-crawler示例演示了一条非常实用的目标型信息采集链路GPT-4.1 负责理解目标、推导搜索词、排序、判定命中等需要语义理解的部分Firecrawl 负责站点地图发现与页面抓取这类工程化的数据获取部分两者各司其职。按 README 完成安装配置后你可以用python gpt-4.1-web-crawler.py立刻体验深入阅读 gpt-4.1-web-crawler.py 与 python-sdk 源码后还能轻松把它改造成适合自己业务场景的定向信息采集工具。赞分享网页爬虫后端AI 应用【免费下载链接】firecrawlThe web data API to search, scrape, and interact at scale. 项目地址https://gitcode.com/GitHub_Trending/fi/firecrawl点击查看免费下载相关推荐目标驱动型智能网页爬虫OpenAI o3 结合 Firecrawl 的 o3-web-crawler 实战解析目标驱动型智能网页爬虫OpenAI o3 结合 Firecrawl 的 o3 web crawler 实战解析 本篇文章以开源仓库 firecrawl htt网页爬虫后端AI 应用3大颠覆级功能重构工业自动化调试OpenModScan全场景Modbus主站工具深度解析3大颠覆级功能重构工业自动化调试OpenModScan全场景Modbus主站工具深度解析 OpenModScan作为基于MIT许可的开源Modbus主站工具网页爬虫后端AI 应用librealsense 入门实战用 rs-hello-realsense 示例读取 RealSense 深度数据librealsense 入门实战用 rs hello realsense 示例读取 RealSense 深度数据 导读 rs hello realsense网页爬虫后端AI 应用上一篇REFramework游戏Mod开发指南为RE引擎游戏打造专属模组体验下一篇思源黑体TTF版本专业字体构建与优化完全指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考