如何通过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




