Google 地图数据为本地潜在客户开发、竞争分析和位置智能工作流程提供支持。直接抓取地图是不可靠的,因为 Google 使用了严格的反机器人保护措施,并且经常更改其 DOM 结构。 Scavio API 以干净的 JSON 形式返回结构化地图数据,包括企业名称、地址、电话号码、评分、评论计数和营业时间。本教程演示如何通过 Python 和 JavaScript 中的 SERP API 查询本地业务数据。您将构建一个简单的管道,通过评级和评论计数来提取和过滤业务。
前置条件
- 安装了 Python 3.8+ 或 Node.js 18+
- 安装请求库(Python)
- 来自 scavio.dev 的 Scavio API 密钥
- 要搜索的目标位置和业务类别
操作指南
步骤 1: 配置搜索查询
设置您的 API 密钥并使用位置上下文定义本地企业搜索查询。
import os, requests
API_KEY = os.environ["SCAVIO_API_KEY"]
QUERY = "plumbers in Austin TX"步骤 2: 获取地图结果
使用 Google 地图查询 POST 到 Scavio API。响应包括包含业务详细信息的 local_results。
resp = requests.post("https://api.scavio.dev/api/v1/search",
headers={"x-api-key": API_KEY},
json={"platform": "google", "query": QUERY, "type": "maps"})
data = resp.json()
locals = data.get("local_results", [])步骤 3: 按评级和评论过滤
根据最低评级和评论数量过滤企业以找到高质量的潜在客户。
quality_leads = [
b for b in locals
if float(b.get("rating", 0)) >= 4.0 and int(b.get("reviews", 0)) >= 20
]
for b in quality_leads:
print(f"{b['title']} - {b.get('rating')} ({b.get('reviews')} reviews)")
print(f" {b.get('address', 'N/A')} | {b.get('phone', 'N/A')}")步骤 4: 将潜在客户导出为 JSON
将筛选后的潜在客户保存到 JSON 文件,以供 CRM 导入或外展管道使用。
import json
leads = [{
"name": b.get("title", ""),
"address": b.get("address", ""),
"phone": b.get("phone", ""),
"rating": b.get("rating", ""),
"reviews": b.get("reviews", 0),
"url": b.get("link", ""),
} for b in quality_leads]
with open("leads.json", "w") as f:
json.dump(leads, f, indent=2)
print(f"Exported {len(leads)} leads")Python 示例
import os, requests
API_KEY = os.environ["SCAVIO_API_KEY"]
resp = requests.post("https://api.scavio.dev/api/v1/search",
headers={"x-api-key": API_KEY},
json={"platform": "google", "query": "plumbers in Austin TX", "type": "maps"})
for b in resp.json().get("local_results", [])[:5]:
print(f"{b['title']} - {b.get('rating')} stars")JavaScript 示例
const r = await fetch("https://api.scavio.dev/api/v1/search", {
method: "POST",
headers: {"x-api-key": process.env.SCAVIO_API_KEY, "Content-Type": "application/json"},
body: JSON.stringify({platform: "google", query: "plumbers in Austin TX", type: "maps"})
});
const data = await r.json();
(data.local_results || []).slice(0, 5).forEach(b =>
console.log(b.title, b.rating, b.reviews)
);预期输出
A list of local businesses with name, address, phone, rating, and review count extracted from Google Maps as structured JSON.