Una forma de hacerlo es exportar el historial del artículo y luego procesar las revisiones utilizando una herramienta local como git blame
. Esto podría hacerse usando un script.
Para exportar el historial de artículo, useSpecial:Export
, en particular: https://en.wikipedia.org/w/index.php?title=Special:Export&history=1&action=submit&pages=Blinkenlights
.
Para generar la culpa, primero agregue las revisiones a un repositorio temporal de git (que se muestra en Python 3):
import tempfile
import subprocess
with tempfile.TemporaryDirectory() as repo:
os.chdir(repo.name)
subprocess.check_call(['git', 'init'])
Luego descargue el XML del historial exportado, analícelo con algo parecido lxml.etree
y repita las revisiones (xpath //revision
). Para cada revisión, escriba el texto en un archivo (digamos article.wiki
), lea al autor y ejecute
subprocess.check_call(['git', 'commit', '-a', '-m', 'blah', '--author=' + str(author)])
Después de agregar todas las revisiones al repositorio, ejecute git blame article.wiki
para ver el autor de cada línea.
Nota: Special:Export
puede restringir el número de revisiones exportadas, por lo que en páginas con un historial largo puede que tenga que recuperar el XML varias veces.