You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何通过Wikipedia API获取信息框含城市模板的页面

维基百科API检索城市相关信息框页面指南

嘿,我来帮你搞定维基百科API的这个需求啦!先给你明确说:维基百科确实存在专门的城市类信息框模板,接下来我给你拆解具体的实现方法和细节,都是实战能用的哦。

一、关于城市类信息框模板

英文维基里常用的城市相关模板主要有两个:

  • {{Infobox city}}:专门为城市设计的信息框模板,很多城市页面直接使用它
  • {{Infobox settlement}}:更通用的定居点模板,涵盖城市、城镇、村庄等,也是大量城市页面的选择

如果你要找的是严格标注为“City”的信息框,{{Infobox city}}就是你要找的;如果范围放宽到所有城市类页面,{{Infobox settlement}}也得纳入检索范围。

二、API检索具体实现方法

你之前的请求是针对单个页面(London)获取图片和词条信息,现在要批量检索目标页面,需要调整API的参数组合,我给你几个实用的请求示例:

1. 检索使用指定城市模板的页面

要找出所有嵌入了{{Infobox city}}模板的页面,可以用embeddedin列表查询:

https://en.wikipedia.org/w/api.php?action=query&origin=*&format=json&formatversion=2&list=embeddedin&eititle=Template:Infobox city&eilimit=20&eifilterredir=nonredirects

给你解释下这些参数的作用:

  • list=embeddedin:告诉API我们要找的是嵌入了某模板的页面列表
  • eititle=Template:Infobox city:明确指定要检索的模板名称
  • eilimit=20:设置单次返回的页面数量(最大可以设到500,按需调整)
  • eifilterredir=nonredirects:排除重定向页面,只保留有真实内容的页面

如果要检索使用{{Infobox settlement}}的页面,只需要把eititle改成Template:Infobox settlement就行。

2. 检索信息框含“City”字样的页面

如果你的需求是找到所有信息框模板名称里包含“City”的页面(比如{{Infobox city}}{{Infobox city UK}}这类地区变体),可以用allpages列表结合命名空间筛选:

https://en.wikipedia.org/w/api.php?action=query&origin=*&format=json&formatversion=2&list=allpages&apnamespace=10&apprefix=Infobox City&aplimit=20

参数说明:

  • apnamespace=10:指定只查询模板命名空间(维基百科里模板的命名空间编号是10,这样就不会搜到普通页面了)
  • apprefix=Infobox City:筛选模板名称以“Infobox City”开头的条目
  • aplimit=20:设置单次返回的数量

如果是要找页面内容里的信息框包含“City”字样(比如信息框的描述、参数里出现“City”),可以用搜索生成器来实现:

https://en.wikipedia.org/w/api.php?action=query&origin=*&format=json&formatversion=2&generator=search&gsrsearch="Infobox" "City"&gsrlimit=20&prop=templates

这个请求会先搜索内容里同时包含“Infobox”和“City”的页面,再返回这些页面使用的模板,方便你进一步验证是否符合要求。

三、小提示

  • 如果你需要的页面数量较多,可以结合continue参数实现分页查询,因为单次API请求返回的数量有限
  • 维基百科API有请求频率限制,短时间内不要发送大量请求,避免被限流哦

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

火山引擎 最新活动