关于Google Knowledge Graph API缺失articleBody及Python调用的技术问询
关于Google Knowledge Graph API未返回detailedDescription.articleBody的问题解答
先说说可能的原因
- API返回字段的动态特性:Google Knowledge Graph的响应字段不是一成不变的,它会根据实体的数据源情况、实体类型,甚至API的内部微调来动态返回内容。有时候某个实体的
detailedDescription或者其下的articleBody可能没有被填充,或者API调整后不再返回这个字段,这类小调整不一定会立刻同步到公开文档里。 - 请求参数没配对:你可能没在请求里设置合适的参数来触发
detailedDescription的返回。比如默认参数下API可能只返回精简版数据,试试调整limit、指定types参数,说不定能拿到更完整的内容。
用Python尝试获取articleBody的方法
第一步:检查并调整请求参数
确保你的请求包含这些关键参数:
query:搜索的关键词(比如"Taylor Swift")key:你的API密钥(这个必须是有效的,不然请求根本通不过)limit:设为1或者更大的数,确保能定位到目标实体types:指定实体类型(比如Person),帮API更精准匹配你要找的内容indent:设为True只是方便你看返回格式,不影响字段返回
第二步:示例Python代码
import requests def get_kg_detailed_desc(query, api_key): kg_url = "https://kgsearch.googleapis.com/v1/entities:search" request_params = { "query": query, "key": api_key, "limit": 1, "indent": True, "types": "Person" } response = requests.get(kg_url, params=request_params) response_data = response.json() # 尝试提取articleBody if "itemListElement" in response_data: for element in response_data["itemListElement"]: entity_result = element.get("result", {}) detailed_desc = entity_result.get("detailedDescription", {}) article_body = detailed_desc.get("articleBody") if article_body: print("找到的articleBody内容:\n", article_body) else: print("当前返回结果里没有articleBody字段") else: print("API没有返回任何结果") # 替换成你的API密钥和查询词 get_kg_detailed_desc("Taylor Swift", "你的API密钥")
第三步:如果还是拿不到怎么办?
要是参数都调对了还是没articleBody,那大概率是Google现在没给这个实体提供这个字段的数据,或者API内部调整后不再返回它了。这种情况下,你可以试试用返回结果里的url(比如维基百科的链接),自己爬取对应页面的详细描述,但一定要遵守目标网站的使用规则和robots协议哦。另外,也可以多留意官方文档的更新,虽然有时候会滞后,但重大变化一般会有通知。
总结一下
目前没有公开的未文档化API更新信息,但这类知识图谱API的字段返回本来就有动态性。先调整请求参数试试能不能拿到articleBody,如果不行,就考虑用其他数据源来补充内容。
内容的提问来源于stack exchange,提问作者cavs
相关产品推荐
相关产品推荐

