如何使用签名或用户ID获取用户信息?

问题描述 投票:0回答:1

我是Wikimedia的初学者,我正在使用Wiki API完成我的项目。我的数据集看起来像这样:

rev_id | comment | timestamp | page_id | page_title | user_id | user_text
-- -- -- -- -- -- -- -- -- -- -- --
352194497 | Welcome to Wikipedia | 2010-03-26T18:16:48Z | 26709696 | 116.197.206.138 | 8356162 | Mlpearc

我正在尝试查找这些评论发布者的一些用户信息。但是,我发现这里的“ user_text”不是用户名,而是签名。如果我使用官方API演示get_users.py来获取信息,则会发现该错误,因为某些签名中有空格,但用户名都是单个单词。像下面的代码一样,我可以使用Catrope|Bob获取Catrope和Bob的信息。但是如果我使用Catrope|Bob Ben,如果Bob Ben是Bob的签名,那将不起作用。

import requests

S = requests.Session()

URL = "https://en.wikipedia.org/w/api.php"

PARAMS = {
    "action": "query",
    "format": "json",
    "list": "users",
    "ususers": "Catrope|Bob",
    "usprop": "blockinfo|groups|editcount|registration|emailable|gender"
}

R = S.get(url=URL, params=PARAMS)
DATA = R.json()

USERS = DATA["query"]["users"]

for u in USERS:
    print(str(u["name"]) + " has " + str(u["editcount"]) + " edits.")

所以我的问题是,有什么方法可以使用API​​通过签名获取用户信息?并且由于我们在这里也有page_id和user_id,因此此信息对您有帮助吗?提前非常感谢您!

python mediawiki wikipedia wikipedia-api
1个回答
0
投票

您没有提到所得到的错误和回溯。只要用户名存在,代码示例就可以正常工作,即使用户名中有空格。

但是user account "Bob Ben" is not registered。在这种情况下,API会回复{'name': 'Bob Ben', 'missing': ''}

© www.soinside.com 2019 - 2024. All rights reserved.