适用于 Python 的 Wikipedia API:如何从相应页面获取项目 ID?

我正在使用 Wikipedia-API 0.5.4,我想检索给定页面上正在讨论的项目的 item ID。是否可以使用从页面查询返回的数据来执行此操作?

我能够检索 pageid。但是,关于同一项目的不同语言的页面没有相同的 pageid,但它们确实引用了单个项目的唯一项目 ID。

在下面的例子中,歌手雪儿的英文页面的pageid与对应的法语页面的pageid不同,而“Cher”的item ID在两种情况下应该是相同的。

是否无法从页面对象访问项目 ID?

import wikipediaapi as wp
wp_en = wp.Wikipedia('en')
cher_en = wp_en.page('Cher')

print(cher_en.pageid)
> 80696

print(cher_en.langlinks['fr'].pageid)
> 339022
zzh0576 回答:适用于 Python 的 Wikipedia API:如何从相应页面获取项目 ID?

我最终使用 requests 库直接使用 Wikipedia REST API。包含 prop=pageprops 将返回项目 ID,该 ID 在不同语言之间共享。

import requests as rq

request_str = 'https://en.wikipedia.org/w/api.php?action=query&prop=pageprops&titles=Cher&format=json'
resp = rq.get(request_str)
resp.text.split('wikibase_item":"')[1].split('"')[0]
> 'Q12003'

fr_str = 'https://fr.wikipedia.org/w/api.php?action=query&prop=pageprops&titles=Cher_(artiste)&format=json'
fr_resp = rq.get(request_str)
fr_resp.text.split('wikibase_item":"')[1].split('"')[0]
> 'Q12003'
本文链接:https://www.f2er.com/609315.html

大家都在问