我如何找出谁在Wikipedia中撰写了文章的特定部分?


14

版本控制系统通常将此功能称为“责备某人”。对于每一行,它显示了修改的人和时间。

更新: 我正在寻找一种解决方案,该解决方案也适用于具有数千次编辑的文章(即浏览版本历史记录并检查每条记录都不可行)。


1
有关使用WikiBlame的特定说明(以找出谁写了特定短语),可以在以下位置找到:webapps.stackexchange.com/questions/35906/…–
Anderson Green,

Answers:


4

如果单击View History文章的链接,则可以看到对该文章所做的更改,在什么日期以及由谁进行的更改的列表。还将显示更改描述的简短摘要。然后,您可以单击Compare selected version按钮比较文本。

不幸的是,我不了解Blame功能,该功能使您可以直接查看是谁更改了特定行,句子或段落。

编辑:您可能想查看Greg Hewill的网站,他(显然)正在开发这种怪功能。


这对于简短的文章来说很简单。但是,当您的文章具有成百上千的编辑内容时,将变得更加困难。我在寻找相反的东西。您给一行,它告诉您用户。
有意义的2010年

您发布的链接正是我所寻找的那种。
有意义的2010年

我很高兴您找到了您需要的东西:D
LBushkin 2010年


0

您可以通过单击"View History"每个维基百科文章右上角的来完成此操作。在这里,您将找到文章的修订列表。如果要专门由每个用户提交,则可以单击"cur"每个修订旁边的,维基百科将突出显示已更改的内容。


我更新了一个问题,该问题解释了为什么此方法不适用于具有数千个版本的文章。
有意义的2010年

看来OpenBSDWiki的答案是正确的。那不是您要找的东西吗?
Oren Hizkiya

0

一种方法是导出文章历史记录,然后使用本地工具(如)处理修订git blame。这可以使用脚本来完成。

要导出文章历史记录,请使用Special:Export,特别是:https://en.wikipedia.org/w/index.php?title=Special:Export&history=1&action=submit&pages=Blinkenlights

要怪罪,首先将修订添加到临时git存储库(如Python 3所示):

import tempfile
import subprocess
with tempfile.TemporaryDirectory() as repo:
    os.chdir(repo.name)
    subprocess.check_call(['git', 'init'])

然后下载导出的历史记录XML,使用进行解析lxml.etree,然后遍历修订版(xpath //revision)。对于每个修订版,将文本写入文件(例如article.wiki),阅读作者并运行

subprocess.check_call(['git', 'commit', '-a', '-m', 'blah', '--author=' + str(author)])

将所有修订版本添加到仓库后,运行git blame article.wiki以查看每一行的作者。

注意:Special:Export可能会限制导出的修订版本的数量,因此在历史悠久的页面中,您可能必须多次获取XML。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.