通过Pywikib检查Wikidata上是否已经存在具有特定标签和描述的项

2024-05-19 18:19:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在寻找一种方法,以查明是否有一个带有特定标签和描述的条目在Wikidata上已经存在。这个任务应该由Pywikibot执行。我不希望我的机器人创建一个新的项目,如果它已经存在。到目前为止,我的代码如下:

...                
def check_item_existence(self):
    transcript_file = self.transcript_file
    with open(transcript_file) as csvfile:
        transcript_dict = csv.DictReader(csvfile, delimiter="\t")
        for row in transcript_dict:
            site = pywikibot.Site("en", "TillsWiki")
            existing_item = pywikibot.ItemPage(site, row['Name'])
            title = existing_item.title()

Tags: csvfile方法selftitlesite条目标签item
1条回答
网友
1楼 · 发布于 2024-05-19 18:19:33

您可以使用Wikibase API中的wbsearchentities api模块。检查WikiData中是否存在带有特定英文标签的项的代码是:

from pywikibot.data import api
...
def wikiitemexists(label):
    params = {'action': 'wbsearchentities', 'format': 'json',
              'language': 'en', 'type': 'item', 'limit':1,
              'search': label}
    request = api.Request(site=acta_site, **params)
    result = request.submit()
    return True if len(result['search'])>0 else False

请注意,Wikidata中的标签不是唯一的,API也会搜索别名。在

相关问题 更多 >