История редакций Википедии с использованием pywikibot: размер редакции (дополнение)

Я хотел бы продолжить эту тему: История изменений Википедии с использованием pywikibot

Я пытаюсь получить переменную размера ревизии (количество измененных байтов) для моего списка ревизий страниц Википедии с помощью pywikibot 5.2.0, но не нахожу соответствующую переменную в своем выводе.

Вот как я определил свою функцию:

def get_page_revisions(page, site=pywikibot.Site("pl", "wikipedia")):
    return pywikibot.Page(site, page).revisions(content=False)

Я импортирую файл R с вектором из 3245 строк (названия страниц Википедии) в свой редактор Python и запускаю функцию get_page_revisions, которая возвращает 12 столбцов и 379 426 наблюдений за изменениями. Таким образом, я получаю следующие столбцы: revid, _text, timestamp, user, anon, comment, minor, rollbacktoken, _parent_id, _content_model, _sha1, slots.

Я не получаю информацию о размере. Что я делаю не так?

Благодарю вас!


person kasia_freya    schedule 15.12.2020    source источник


Ответы (1)


Page.revisions() предоставляет объект-генератор. Запустите генератор, чтобы получить объект Revision, который содержит содержимое ревизии, преобразуйте генератор в список этих объектов. Каждый объект Revision имеет несколько элементов содержимого, включая «размер». Например:

import pywikibot
site = pywikibot.Site('Wikipedia:pl')
page = pywikibot.Page(site, 'Foo')
rgen = page.revisions()
rev = next(rgen)

Чтобы получить размер, используйте

rev.size

or

rev['size']

Все элементы поставки могут быть показаны, например, с помощью:

list(rev.keys())

и должно показывать:

['revid', 'parentid', 'user', 'userid', 'timestamp', 'size', 'sha1', 'roles',
 'slots', 'comment', 'parsedcomment', 'tags', 'anon', 'minor', 'userhidden', 'text',
 'contentmodel']
person xqt    schedule 12.01.2021