You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Google Sheets查询Wikidata页面并抓取指定属性数据

解决方案

错误原因

  • 你之前使用的IMPORTXML第二个参数/wiki/Property:P570并非合法的XPath路径,只是Wikidata属性的相对URL,无法匹配页面内的DOM节点,因此哪怕页面存在对应属性也会返回空
  • 直接请求Wikidata前端浏览页面(/wiki/[QID])的方案稳定性极低,前端HTML是给普通用户浏览设计的,结构会频繁调整,很容易出现爬取失效的问题

最优解决方法

直接调用Wikidata官方提供的结构化API获取数据,稳定性高,不需要解析复杂的前端DOM,也不需要额外安装插件。
你可以直接在表格中使用以下公式,即可实现「存在P570属性返回对应值,不存在返回FALSE」的需求:

=IFERROR(IMPORTXML(CONCAT("https://www.wikidata.org/w/api.php?action=wbgetentities&ids=",A2,"&props=claims&format=xml"),"//claim[@mainsnak-property='P570']//value/text()"), FALSE)

公式说明

  • 调用Wikidata官方wbgetentities接口,直接返回指定QID的属性结构化数据,不会受前端页面调整影响
  • XPath路径直接精准匹配属性ID为P570的声明值,查询效率更高
  • 外层套IFERROR函数,匹配不到对应属性时自动返回FALSE,完全符合你的需求
  • 如果需要查询其他属性,只需要把公式中的P570替换为目标属性的ID即可,比如查询出生日期替换为P569,查询所在地替换为P131
  • 若对应属性存在多个值,公式默认返回第一个值,如需返回所有值,可在公式外层套TRANSPOSE函数展开

内容的提问来源于stack exchange,提问作者Debs

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 14:24:02