ScavioScavio
产品定价文档
登录开始使用
  1. 首页
  2. 教程
  3. 如何通过API提取Google知识图谱数据
教程

如何通过API提取Google知识图谱数据

使用 Scavio API 从 Google SERP 响应中提取结构化知识图实体。提取 JSON 中的名称、描述、事实和实体类型。

获取免费API密钥API文档

Google 知识图面板出现在品牌、人物、地点和产品等实体的搜索结果顶部。它们包含结构化信息,包括描述、官方网站链接、社交资料和关键属性。当面板可用时,Scadio API 在其 SERP 响应中包含 Knowledge_graph 字段。本教程展示如何查询实体、提取knowledge_graph对象并使用它构建结构化实体配置文件而无需屏幕抓取。

前置条件

  • Python 3.8 或更高版本
  • 请求已安装库
  • Scavio API 密钥
  • JSON解析的基本了解

操作指南

步骤 1: 查询具有知识面板的实体

知识面板显示知名实体。按名称搜索品牌、人物或地点。当谷歌对该实体有信心时,就会出现一个小组。

Python
def get_serp(entity: str) -> dict:
    response = requests.post(
        "https://api.scavio.dev/api/v1/search",
        headers={"x-api-key": API_KEY},
        json={"query": entity, "country_code": "us"}
    )
    response.raise_for_status()
    return response.json()

步骤 2: 提取knowledge_graph字段

检查响应中的knowledge_graph 键。如果 Google 不显示查询面板,则该值将为 None。

Python
data = get_serp("OpenAI")
kg = data.get("knowledge_graph")
if kg:
    print(kg)
else:
    print("No knowledge graph found for this query")

步骤 3: 解析实体属性

Knowledge_graph 对象包含标题、类型、描述、网站和属性列表等字段。通过密钥提取它们。

Python
if kg:
    print("Title:", kg.get("title"))
    print("Type:", kg.get("type"))
    print("Description:", kg.get("description"))
    print("Website:", kg.get("website"))
    for attr in kg.get("attributes", []):
        print(f"  {attr['name']}: {attr['value']}")

步骤 4: 构建结构化实体档案

将知识图字段组合成可以存储或馈送到下游管道的字典。

Python
def build_profile(kg: dict) -> dict:
    return {
        "name": kg.get("title"),
        "entity_type": kg.get("type"),
        "description": kg.get("description"),
        "website": kg.get("website"),
        "attributes": {a["name"]: a["value"] for a in kg.get("attributes", [])},
    }

Python 示例

Python
import os
import requests

API_KEY = os.environ.get("SCAVIO_API_KEY", "your_scavio_api_key")
ENDPOINT = "https://api.scavio.dev/api/v1/search"

def get_knowledge_graph(entity: str) -> dict | None:
    r = requests.post(ENDPOINT, headers={"x-api-key": API_KEY},
                      json={"query": entity, "country_code": "us"})
    r.raise_for_status()
    return r.json().get("knowledge_graph")

def build_profile(kg: dict) -> dict:
    return {
        "name": kg.get("title"),
        "type": kg.get("type"),
        "description": kg.get("description"),
        "website": kg.get("website"),
        "attributes": {a["name"]: a["value"] for a in kg.get("attributes", [])},
    }

if __name__ == "__main__":
    entities = ["OpenAI", "Stripe", "Cloudflare"]
    for name in entities:
        kg = get_knowledge_graph(name)
        if kg:
            profile = build_profile(kg)
            print(profile)
        else:
            print(f"No KG for {name}")

JavaScript 示例

JavaScript
const API_KEY = process.env.SCAVIO_API_KEY || "your_scavio_api_key";
const ENDPOINT = "https://api.scavio.dev/api/v1/search";

async function getKnowledgeGraph(entity) {
  const res = await fetch(ENDPOINT, {
    method: "POST",
    headers: { "x-api-key": API_KEY, "Content-Type": "application/json" },
    body: JSON.stringify({ query: entity, country_code: "us" })
  });
  const data = await res.json();
  return data.knowledge_graph || null;
}

function buildProfile(kg) {
  return {
    name: kg.title,
    type: kg.type,
    description: kg.description,
    website: kg.website,
    attributes: Object.fromEntries((kg.attributes || []).map(a => [a.name, a.value]))
  };
}

async function main() {
  const kg = await getKnowledgeGraph("OpenAI");
  if (kg) console.log(JSON.stringify(buildProfile(kg), null, 2));
}
main().catch(console.error);

预期输出

JSON
{
  "knowledge_graph": {
    "title": "OpenAI",
    "type": "Research laboratory",
    "description": "American artificial intelligence research laboratory...",
    "website": "https://openai.com",
    "founded": "December 11, 2015",
    "headquarters": "San Francisco, California",
    "attributes": [
      { "name": "Founded", "value": "December 11, 2015" },
      { "name": "CEO", "value": "Sam Altman" }
    ]
  }
}

相关教程

  • 如何用 Python 获取 Google 搜索结果
  • 如何从 Google SERP 中提取 People Also Ask 数据

常见问题

大多数开发者在15到30分钟内完成本教程。您需要一个Scavio API密钥(免费套餐即可)和可用的Python或JavaScript环境。

Python 3.8 或更高版本. 请求已安装库. Scavio API 密钥. JSON解析的基本了解. Scavio API密钥注册即送50个免费积分。

可以。免费套餐注册即送50个积分,完全足够完成本教程并构建一个可运行的原型解决方案。

Scavio提供原生LangChain包(langchain-scavio)、MCP服务器以及适用于任何HTTP客户端的REST API。本教程使用 the raw REST API, 但您可以根据需要适配您选择的框架。

相关资源

Best Of

2026 年最佳基于队列的 SERP API

Read more
Best Of

2026年最佳SERP API

Read more
Glossary

SERP API

Read more
Glossary

SERP API 队列系统

Read more
Comparison

Scavio vs Serper

Read more
Comparison

Brave Search API vs Scavio

Read more

开始构建

使用 Scavio API 从 Google SERP 响应中提取结构化知识图实体。提取 JSON 中的名称、描述、事实和实体类型。

获取免费API密钥阅读文档
ScavioScavio

面向AI智能体的实时搜索API。搜索所有平台,不仅仅是Google。

产品

  • 功能
  • 定价
  • 控制台
  • 联盟计划

开发者

  • 文档
  • API参考
  • 快速开始
  • MCP集成
  • Python SDK

替代方案

  • Tavily替代方案
  • SerpAPI替代方案
  • Firecrawl替代方案
  • Exa替代方案

工具

  • JSON格式化
  • cURL转代码
  • Token计数器
  • 全部工具

© 2026 Scavio. 保留所有权利。

Featured on TAAFT
服务条款隐私政策