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