如何获取维基百科页面的所有已存档讨论页面?

时间:2020-02-27 16:22:00

标签: python mediawiki wikipedia-api mediawiki-api pywikibot

我正在使用以下代码为给定的Wikipedia页面获取对话页面。

import pywikibot as pw
page = pw.Page(pw.Site('en'), 'Elon_Musk')
talkpage = page.toggleTalkPage()
talkpage.text

这可以正常工作,但不会返回所有已存档的讨论页面。有没有一种方法可以以编程方式找到给定对话页面的存档并循环浏览以获取文本?

非常感谢!

1 个答案:

答案 0 :(得分:1)

您可以使用以下代码获取所有子页面:

import pywikibot as pw
site = pw.Site('en', 'wikipedia')
for page in site.allpages(prefix='Elon Musk/', namespace='Talk'):
    print(page.title())
    print(page.text)

存在一个页面“ Talk:Elon_Musk / FAQ”。如果您不想包括此页面和类似页面,则需要在返回文本之前添加另一行:if 'Archive' in page.title():