如何在 python 中获取维基百科讨论页中的内容

How to get the content in Talk pages of wikipedia in python

我目前正在使用以下代码获取维基百科的页面内容。

import pywikibot as pw

page = pw.Page(pw.Site('en'), 'Forensic science')
page.text

但是,上面的代码似乎没有返回维基百科 Talk pages 中的内容。例如,

import pywikibot as pw
page = pw.Page(pw.Site('en'), 'Talk:Forensics science')
page.text

更准确地说,我想得到这个页面的内容:https://en.wikipedia.org/w/index.php?title=Talk:Forensic_science&action=edit

如果需要,我很乐意提供更多详细信息。 :)

您的讨论页标题有错字。 'Talk:Forensics science' 应该是 'Talk:Forensic science'(没有 Forensic 末尾的 s)。除此之外,它应该会如您所愿地工作。

如果你想在页面不存在时得到一个明确的错误,试试Page.get方法:

import pywikibot as pw
page = pw.Page(pw.Site('en', 'wikipedia'), 'Talk:Forensics science')
text = page.get()

这将提高:

[...]
"...site.py", line 4166, in loadrevisions
    raise NoPage(page)
pywikibot.exceptions.NoPage: Page [[wikipedia:en:Talk:Forensics science]] doesn't exist.
CRITICAL: Exiting due to uncaught exception <class 'pywikibot.exceptions.NoPage'>