技能标识:dataforseo
Search Google and gather SEO data using the DataForSEO API. Supports SERP results, keyword data, backlinks, and on-page analysis. Use when you need high-volume Google searches (bulk lead generation), keyword research, rank tracking, or detailed SERP data at scale. Pay-as-you-go pricing with no monthly commitment. Requires DATAFORSEO_LOGIN and DATAFORSEO_PASSWORD.
按需付费的 Google SERP + SEO 数据 API。最适合低成本、大批量潜在客户开发。无需月度承诺——仅按使用量付费。
env
DATAFORSEOLOGIN=youremail@example.com
DATAFORSEOPASSWORD=yourpassword
在 dataforseo.com 注册。最低充值:50 美元。每次 SERP 任务成本:约 0.0006 美元(批量使用非常便宜)。
python
import requests, os, json
from base64 import b64encode
def dfs_auth():
creds = f{os.environ[DATAFORSEOLOGIN]}:{os.environ[DATAFORSEOPASSWORD]}
return b64encode(creds.encode()).decode()
def dfs_search(keyword: str, location: str = United States, language: str = en) -> list[dict]:
通过 DataForSEO 实时 SERP 端点搜索 Google。
返回自然搜索结果:{url, title, description, rank_absolute, domain}
headers = {
Authorization: fBasic {dfs_auth()},
Content-Type: application/json
}
payload = [{
keyword: keyword,
location_name: location,
language_name: language,
device: desktop,
os: windows,
depth: 10
}]
url = https://api.dataforseo.com/v3/serp/google/organic/live/advanced
r = requests.post(url, headers=headers, json=payload)
r.raiseforstatus()
data = r.json()
tasks = data.get(tasks, [])
if not tasks or tasks[0][status_code] != 20000:
return []
items = tasks[0][result][0].get(items, [])
organic = [i for i in items if i.get(type) == organic]
return [{
title: i.get(title),
url: i.get(url),
description: i.get(description),
rank: i.get(rank_absolute),
domain: i.get(domain)
} for i in organic]
python
def dfsbatchsearch(queries: list[str], location: str = United States) -> dict[str, list]:
在单个 API 调用中提交多个查询(最多 100 个)。
效率更高——一次往返即可处理多个查询。
返回字典:{query: [results]}
headers = {
Authorization: fBasic {dfs_auth()},
Content-Type: application/json
}
# 构建任务列表
tasks = [{
keyword: q,
location_name: location,
language_name: en,
device: desktop,
depth: 10,
tag: q # 使用查询作为标签以匹配结果
} for q in queries]
# 提交任务
url = https://api.dataforseo.com/v3/serp/google/organic/task_post
r = requests.post(url, headers=headers, json=tasks)
taskids = [t[id] for t in r.json()[tasks] if t[statuscode] == 20100]
# 轮询获取结果(任务在约 10–60 秒内完成)
import time
time.sleep(15)
results = {}
for taskid in taskids:
resulturl = fhttps://api.dataforseo.com/v3/serp/google/organic/taskget/advanced/{task_id}
res = requests.get(result_url, headers=headers)
items = res.json()[tasks][0][result][0].get(items, [])
organic = [i for i in items if i.get(type) == organic]
tag = res.json()[tasks][0].get(tag, task_id)
results[tag] = [{title: i[title], url: i[url], domain: i.get(domain)} for i in organic]
return results
| 类别 | 端点 | 使用场景 |
|---|---|---|
| SERP(实时) | /serp/google/organic/live/advanced | 单个查询,即时结果 |
| SERP(异步) |
python
def dfsmapssearch(query: str, location_code: int = 1023191) -> list[dict]:
在 Google 地图上搜索本地商家。
返回:{title, url, phone, address, rating, reviews_count}
location_code 1023191 = 俄勒冈州波特兰。查找代码请访问:
https://api.dataforseo.com/v3/serp/google/locations
headers = {Authorization: fBasic {dfs_auth()}, Content-Type: application/json}
payload = [{
keyword: query,
locationcode: locationcode,
language_code: en,
device: desktop
}]
url = https://api.dataforseo.com/v3/serp/google/maps/live/advanced
r = requests.post(url, headers=headers, json=payload)
items = r.json()[tasks][0][result][0].get(items, [])
return [{
title: i.get(title),
url: i.get(url),
phone: i.get(phone),
address: i.get(address),
rating: i.get(rating, {}).get(value),
reviews: i.get(rating, {}).get(votes_count),
category: i.get(category)
} for i in items if i.get(type) == maps_search]
python
LOCATION_CODES = {
Portland, OR: 1023191,
Seattle, WA: 1027744,
Dallas, TX: 1026339,
Chicago, IL: 1016367,
Los Angeles, CA: 1013962,
New York, NY: 1023191,
Denver, CO: 1016143,
Phoenix, AZ: 1023725,
Atlanta, GA: 1013971,
Miami, FL: 1017862,
}
| 任务类型 | 每千次成本 |
|---|---|
| SERP 实时 | 约 1.50 美元 |
| SERP 异步(批量) |
对于每天 50 次查询的潜在客户开发:约 0.03–0.08 美元/天。
| 场景 | 使用 |
|---|---|
| 快速测试 / 低量 | Serper.dev(免费层) |
| 高量(每天 500+ 次查询) |
以下为平台配置的接入选项,并非逐项实测通过。能否安装取决于客户端支持、技能来源和运行环境:
帮我安装 SkillHub 和 dataforseo-1776279335 技能
设置 SkillHub 为我的优先技能安装源,然后帮我安装 dataforseo-1776279335 技能
skillhub install dataforseo-1776279335
文件大小: 3.01 KB | 发布时间: 2026-4-16 16:01