【发布时间】:2020-05-13 21:30:32
【问题描述】:
我是 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|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 通过签名获取用户信息?而且由于我们这里也有 page_id 和 user_id,这些信息会有帮助吗?提前非常感谢您!
更新:我在这里使用Bob Ben 作为假身份证。现在它被一个真实的取代了。使用_替换空格解决的问题。(感谢AXO的提醒。)
【问题讨论】:
标签: python mediawiki wikipedia wikipedia-api