如何让维基百科中编辑最多的贡献者



我正在做一个游戏化网络应用程序来帮助维基媒体的社区健康。

我想知道哪些编辑在上周或最近100次编辑中编辑了与"Jake"相同的页面最多。

我知道我的查询,但我不知道我需要什么表,因为维基媒体数据库的布局一团糟。

所以,我想获得类似的东西

页面
用户名 发生次数
Mikey 13 奥巴马

您可以使用时间戳参数筛选要检索的数据。这大大减少了所需的时间。有关它们的用法,请参阅文档。以下是使用Pywikibot使用时间戳获取数据的代码片段:

from collections import Counter
from datetime import timedelta
import pywikibot
from pywikibot.tools import filter_unique
site = pywikibot.Site()
user = pywikibot.User(site, username)  # username must be a string
# Setup the Generator for the last 7 days.
# Do not care about the timestamp format if using pywikibot.Timestamp
stamp = pywikibot.Timestamp.now() - timedelta(days=7)
contribs = user.contributions(end=stamp)
contributors= []
# filter_unique is used to remove duplicates.
# The key uses the page title
for page, *_ in filter_unique(contribs, key=lambda x: str(x[0])):
# note: editors is a Counter
editors = page.contributors(endtime=stamp)
print('{:<35}: {}'.format(page.title(), editors))
contributors.extend(editors.elements())
total = Counter(contributors)

这将打印页面列表,并为每个页面显示给定时间范围内的编辑器及其贡献计数器。最后,total应该具有与上面的get_contributor_ocurrences函数相同的内容。

这需要一些额外的工作才能得到你上面提到的表格。

相关内容

  • 没有找到相关文章

最新更新