【问题标题】:How to get the content in Talk pages of wikipedia in python如何在python中获取维基百科谈话页面中的内容
【发布时间】:2019-02-05 03:31:49
【问题描述】:

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

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

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

【问题讨论】:

    标签: python mediawiki wikipedia pywikibot


    【解决方案1】:

    您的讨论页标题中有错字。 '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'>
    

    【讨论】:

    • 您可以使用talkpage = page.toggleTalkPage()从您已有的页面中获取讨论页面对象,而无需对Talk:进行硬编码。
    猜你喜欢
    • 2015-02-08
    • 2015-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多