Python 如何使用签名或用户ID获取用户';什么信息?

Python 如何使用签名或用户ID获取用户';什么信息?,python,mediawiki,wikipedia,wikipedia-api,Python,Mediawiki,Wikipedia,Wikipedia Api,我是维基媒体的初学者,我正在使用维基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 | Mlp

我是维基媒体的初学者,我正在使用维基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 demos
get_users.py
来获取信息,结果会出现错误,因为某些签名中有空格,但用户名都是单个单词。就像下面的代码一样,我可以使用
Catrope | Bob
获得Catrope和Bob的信息。但是如果我使用
Catrope | Tide rolls
,如果Tide rolls是签名,它就不起作用

import requests

S = requests.Session()

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

PARAMS = {
    "action": "query",
    "format": "json",
    "list": "users",
    "ususers": "Catrope|Tide rolls",
    "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的签名来获取用户信息?既然我们这里也有页面id和用户id,这些信息会有帮助吗?提前非常感谢


更新:我在这里使用了
Bob Ben
作为假身份证。现在它被一个真实身份证所取代。通过使用u替换空间解决了问题。(感谢AXO的提醒。)

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

但是。在这种情况下,API用
{'name':'Bob Ben','missing':''}
回复

因此,您的代码可能是:

for u in USERS:
    if 'missing' not in u:
        print(u["name"] + " has " + str(u["editcount"]) + " edits.")
    else:
        print(u["name"], "is not registered.")
顺便说一句,如果出于某种原因您不喜欢使用空格,您可以使用
(下划线)


关于“用户信息”,我不知道你在寻找什么样的信息。据了解,使用
usprop
参数可以获得
blockinfo | groups | groupmemberships | implicitgroups | rights | editcount | registration | emailable | gender | centralids |创建
。但是,如果要获取一些其他信息,例如用户页面上的信息,那么您可能需要使用中提到的方法之一获取用户页面的内容,然后编写一个程序来查找您需要的信息。

Hi AXO!非常感谢您的回复。是的,鲍勃·本是我用来解释的一个“假”名字。为了避免引起混淆,我已经更新了一个真实的用户名。再次感谢你!顺便问一下,我是否可以使用其他属性获取用户信息?就像这里我们已经有了编辑计数和注册。你知道我在哪里可以找到其他用途的功能吗?想在用户页面上获得自我介绍吗?非常感谢。伟大的这就是我想要的。非常感谢,阿索!