首页 > 解决方案 > 使用 pywikibot 的维基百科修订历史:修订大小(后续)

问题描述

我想跟进这个线程:Wikipedia revision history using pywikibot

我正在尝试使用 pywikibot 5.2.0 获取我的 Wikipedia 页面修订列表的“修订大小”(更改的字节数)变量,但在我的输出中找不到相应的变量。

这是我定义函数的方式:

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

我将一个包含 3,245 个字符串(维基百科页面的标题)向量的 R 文件导入我的 Python 编辑器并运行get_page_revisions返回 12 列和 379,426 个修订意见的函数。因此,我得到以下列:“ revid, _text, timestamp, user, anon, comment, minor, rollbacktoken, _parent_id, _content_model, _sha1, slots”。

我没有获得尺寸信息。我究竟做错了什么?

谢谢!

标签: pywikibot

解决方案


Page.revisions() 给出了一个生成器对象。运行生成器以获取包含修订内容的修订对象,将生成器转换为这些对象的列表。每个修订对象都有几个内容项,包括“大小”。例如:

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

要获得大小使用

rev.size

或者

rev['size']

所有提供的项目都可以显示,例如:

list(rev.keys())

并且应该显示:

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

推荐阅读