Wikidata是一个自由、协作的多语言知识库,旨在创建、维护和提供可自由使用的结构化内容。它是维基媒体基金会的一个项目,与Wikipedia紧密集成。InfoBox(也称为infobox)是Wikipedia页面上的一种模板,用于以表格形式展示关于条目的关键信息。
Wikidata:一个中央存储库,存储各种类型的结构化数据,并为Wikipedia等维基媒体项目提供支持。
InfoBox:Wikipedia页面上的一个标准化信息框,通常包含关于条目的基本事实,如出生日期、职业、国籍等。
要从Wikidata获取InfoBox数据,你可以使用Wikidata API。以下是一些基本步骤和示例代码:
import requests
def get_wikidata_info(entity_id):
url = f"https://www.wikidata.org/wiki/Special:EntityData/{entity_id}.json"
response = requests.get(url)
if response.status_code == 200:
data = response.json()
return data['entities'][entity_id]
else:
return None
def extract_infobox_data(entity_data):
if 'P31' in entity_data: # P31 is the property for instance of
labels = entity_data.get('labels', {})
descriptions = entity_data.get('descriptions', {})
# 这里可以根据需要提取更多的属性
return {
'labels': labels,
'descriptions': descriptions,
# 添加其他需要的字段
}
return None
# 使用示例
entity_id = 'Q9527' # 例如,Albert Einstein的Wikidata ID
entity_data = get_wikidata_info(entity_id)
if entity_data:
infobox_data = extract_infobox_data(entity_data)
print(infobox_data)
else:
print("Failed to retrieve data.")
问题:获取的数据不完整或格式不正确。
原因:可能是由于API请求的限制、数据本身的缺失或解析代码的错误。
解决方法:
通过以上步骤和方法,你可以有效地从Wikidata获取并利用InfoBox数据。
没有搜到相关的沙龙