Один із способів зробити це - експортувати історію статей, а потім обробити зміни, використовуючи локальний інструмент, як-от 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 кілька разів.