AI PLAY玩法更新持续收录
← 回到更新流

2026-09-08 · 原文发布日

抓取Google Maps商家并按目标服务打分入表

手动运行后把配置好的搜索词发给ScrapeHero的Google Maps搜索接口,自动跟随分页直到翻完或达到页数上限,汇总后逐条规范化商家字段并去重。每个商家连同你写的目标服务描述交给gpt-4o-mini,输出评分、质量、匹配度和建议动作的结构化结果,与原始商家信息合并摊平后逐行追加到Google Sheets。需要ScrapeHero、OpenAI和Google Sheets三套凭证,搜索词、目标服务和页数上限在配置步修改。

原文要点

这是n8n模板站上Naveen Vinod发布的免费工作流(2026-09-08)。流程为手动触发,把配置好的Google Maps搜索词发给ScrapeHero的Google Maps搜索接口,跟随返回的下一页地址翻页,直到翻完或达到maxPages上限;汇总后逐条规范化商家字段并去重,再把每个商家连同targetService交给gpt-4o-mini产出评分、质量、匹配度和建议动作,与原始数据合并摊平后逐行追加进Google Sheets。需要ScrapeHero、OpenAI、Google Sheets三套凭证,模板本身不收费但接口按各自用量计费。

这次做成什么

在n8n里搭一条'搜Google Maps商家→AI按目标服务打分→写进表格'的流水线,并用一个虚构的小范围搜索跑通全流程,拿到一张带评分列的线索表。

准备什么

  • 一个可登录的n8n实例(云端或自托管均可)
  • ScrapeHero账号并开通其Google Maps Search API,拿到API密钥
  • OpenAI账号与API密钥,且账号可用gpt-4o-mini
  • Google账号,并准备一个空白Google Sheets表格用于接收结果
  • 已在n8n中分别创建ScrapeHero、OpenAI、Google Sheets三套凭证

具体怎么做

  1. 配置搜索参数

    打开模板中的搜索配置步骤(Set类节点),填三个值:searchText填Google Maps搜索词如"Tandarts Antwerpen";targetService填你的目标服务描述如"提供牙齿美白服务的牙科诊所";maxPages填2作为练习上限。保存后不要先运行。

  2. 接通ScrapeHero抓取与翻页

    确认HTTP请求节点使用ScrapeHero凭证调用其Google Maps搜索接口,节点逻辑会读取返回里的下一页URL并循环请求,直到没有下一页或达到maxPages。第一次练习建议maxPages=2,避免消耗过多抓取额度。

  3. 规范化并去重

    抓回的各页结果先合并成一个数组,再拆成单条商家,用Code节点统一字段名(名称、地址、电话、评分、评论数、网址),按名称+地址组合去掉重复条目。检查输出条数应小于等于原始汇总条数。

  4. AI打分

    把每条商家和targetService一起发给OpenAI节点(gpt-4o-mini),要求只输出JSON。提示词见下方材料。temperature建议调低以稳定输出格式,并确认节点把返回文本解析为对象。

  5. 合并并写入表格

    把原始商家字段与AI输出的score/quality/fit/action四个字段合并摊平成一行记录,Google Sheets节点选Append操作,目标填你的表格ID和工作表名。字段映射:name→A列名称、address→B列地址、phone→C列电话、rating→D列地图评分、score→E列AI评分、quality→F列质量、fit→G列匹配度、action→H列建议动作。

  6. 手动运行验证

    点击Execute Workflow手动触发,逐节点查看输出:ScrapeHero节点应有商家数组,去重节点条数合理,OpenAI节点每条都有合法JSON,最后打开Google Sheets确认每行八列齐全。

可直接复制的材料

AI线索评分提示词(可粘贴到OpenAI节点)

本站独立编写的示例提示词,需把字段名替换成你去重节点实际输出的键名,模型名gpt-4o-mini需在原模板核对。

你是一名B2B线索评估助手。下面给你一条Google Maps商家信息和一段目标服务描述。请判断该商家与目标服务的匹配程度,并只输出一个JSON对象,不要输出任何其他文字。

商家信息:
名称:{{$json.name}}
地址:{{$json.address}}
地图评分:{{$json.rating}}
评论数:{{$json.reviews}}
简介:{{$json.description}}

目标服务描述:{{$('搜索配置').item.json.targetService}}

输出JSON格式(四个键,缺一不可):
{"score": 0到100的整数匹配分, "quality": "high或medium或low", "fit": "一句话说明为什么匹配或不匹配", "action": "建议动作,只能是contact、review或skip之一"}

练习用合成商家数据(替代真实抓取调试)

本站虚构的练习数据,可在抓取节点调试失败时手动注入,三条里有一条重复用于验证去重逻辑。

[
  {"name": "Tandartspraktijk De Witte Tand", "address": "Meir 12, Antwerpen", "phone": "+32 3 200 11 22", "rating": 4.6, "reviews": 87, "description": "Algemene tandheelkunde en esthetische behandelingen"},
  {"name": "Dental Care Centrum", "address": "Kerkstraat 5, Antwerpen", "phone": "+32 3 210 33 44", "rating": 4.1, "reviews": 23, "description": "Tandarts, mondhygiëne, tanden bleken"},
  {"name": "Tandartspraktijk De Witte Tand", "address": "Meir 12, Antwerpen", "phone": "+32 3 200 11 22", "rating": 4.6, "reviews": 87, "description": "重复条目,用于验证去重"}
]

输入与输出示例

本站虚构演示,评分由示例逻辑推得,非原作者运行结果,实际分数取决于模型当次输出。

输入

searchText="Tandarts Antwerpen",targetService="提供牙齿美白(tanden bleken)服务的牙科诊所",maxPages=2,使用上面三条合成数据代替真实抓取。

对应输出

去重后剩2条;其中Dental Care Centrum因简介明确含"tanden bleken",AI输出{"score":88,"quality":"high","fit":"简介明确提到牙齿美白服务","action":"contact"},该行写入表格为:Dental Care Centrum | Kerkstraat 5, Antwerpen | +32 3 210 33 44 | 4.1 | 88 | high | 简介明确提到牙齿美白服务 | contact。

做完检查这些

  • 去重节点输出条数比注入的三条合成数据少一条,证明按名称+地址去重生效
  • OpenAI节点每条输出都能被解析成含score、quality、fit、action四个键的对象,无多余文字
  • Google Sheets中新增的行八列齐全,AI评分列与质量列不为空
  • 把maxPages改为1再跑一次,抓取节点只请求一页且流程不报错

容易卡住的地方

  • ScrapeHero账号若未单独开通Google Maps Search API,抓取节点会返回权限或接口错误
  • OpenAI账号若无权使用gpt-4o-mini需在原模板中换成可用模型,不要硬跑
  • AI未严格输出JSON时合并步骤会报错,需确认解析节点存在且提示词含'只输出JSON'约束
  • Google Sheets追加要求列顺序与映射一致,先在表里建好表头再跑
  • 翻页上限maxPages设太大会消耗大量抓取额度,练习时保持小数值

原文与作者资料 ↗

本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。

原文标题
Qualify Google Maps leads with ScrapeHero, OpenAI, and Google Sheets
原作者
Naveen Vinod
原始发布日期
2026-09-08T04:58:06.602Z
来源
https://n8n.io/workflows/19359