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

维基百科API获取主图异常:如何获取英国现任首相肖像?

获取英国现任首相肖像的替代方法

我尝试通过维基百科API获取英国首相页面的主图,但调用时返回的是页面右侧的皇家徽章;而用相同方法获取内政大臣页面时,能正确返回现任内政大臣Suella Braverman的肖像。相关代码如下:

import requests
from flask import Flask
from flask_cors import CORS, cross_origin
from flask import jsonify

app = Flask(__name__)
cors = CORS(app)

def getQuery(search):
    response = requests.get(search)
    results = response.json()
    return jsonify(results)

pmPageID = 24150
HomeSecPageID = 149104
query = 'https://en.wikipedia.org/w/api.php?action=query&prop=pageimages&format=json&piprop=original&pageids={}'
@app.route('/')
@cross_origin()
def index():
    result = getQuery(query.format(pmPageID))
    return result 

以下是几种获取现任首相肖像的可行方法:

  • 直接使用现任首相的个人维基页面ID
    英国首相的职位页面(ID:24150)主图默认是皇家徽章,而现任首相的个人维基页面会包含专属肖像。找到当前首相的个人页面ID(比如里希·苏纳克的页面ID为10998185),替换代码中的pmPageID即可:

    pmPageID = 10998185  # 替换为现任首相个人维基页面ID
    
  • 从职位页面的信息框(Infobox)提取肖像链接
    通过维基百科API获取职位页面的信息框内容,从中提取肖像字段的图片名称,再构造完整的图片URL。示例代码如下:

import requests
from flask import Flask, jsonify
from flask_cors import CORS, cross_origin
import re

app = Flask(name)
cors = CORS(app)

def get_pm_portrait():
page_id = 24150 # 英国首相职位页面ID
api_url = f"https://en.wikipedia.org/w/api.php?action=query&prop=revisions&rvprop=content&format=json&pageids={page_id}&rvsection=0"
response = requests.get(api_url)
data = response.json()

# 提取页面内容中的信息框部分
content = data['query']['pages'][str(page_id)]['revisions'][0]['*']
# 匹配信息框中的image字段
image_match = re.search(r'\| *image *= *([^\|\n]+)', content)

if image_match:
    image_filename = image_match.group(1).strip()
    # 构造维基媒体 Commons 的原始图片URL
    portrait_url = f"https://upload.wikimedia.org/wikipedia/commons/thumb/{image_filename[0]}/{image_filename[:2]}/{image_filename}/original/{image_filename}"
    return jsonify({"portrait_url": portrait_url})
return jsonify({"error": "无法找到肖像链接"})

@app.route('/')
@cross_origin()
def index():
return get_pm_portrait()

- **通过Wikidata关联查询现任首相信息**
利用Wikidata API,先通过英国首相职位的条目(Q7275)找到现任任职者,再获取其对应的维基百科页面ID,最后用原API方法获取肖像。这种方法能自动适配首相更迭,无需手动更新页面ID。

内容的提问来源于stack exchange,提问作者user12609637
相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 06:06:45