【问题标题】:Export text (MediaWiki markup) from MediaWiki installation从 MediaWiki 安装导出文本(MediaWiki 标记)
【发布时间】:2011-12-06 20:00:07
【问题描述】:

我想从本地 MediaWiki 安装中导出许多文章(但不是 all articles)的 MediaWiki 标记。我只想要当前的文章标记,而不是历史记录或其他任何内容,每篇文章都有一个单独的文本文件。我想以编程方式和理想的方式在 MediaWiki 服务器上执行此导出,而不是远程执行。

例如,如果我对 Apple、Banana 和 Cupcake 文章感兴趣,我希望能够:

article_list = [“苹果”、“香蕉”、“纸杯蛋糕”] 对于 article_list 中的一个: get_article(a, a + ".txt")

我的目的是:

  • 提取所需文章
  • 将 MediaWiki 标记存储在单个文本文件中
  • 在单独的程序中解析和处理

MediaWiki 是否已经可以做到这一点?看起来不像。还有doesn't look like Pywikipediabot has such a script

后备方案是能够手动执行此操作(使用导出特殊页面)并轻松地将输出解析为文本文件。是否有现有的工具可以做到这一点?是否有 MediaWiki XML 转储格式的描述? (我找不到。)

【问题讨论】:

    标签: text export mediawiki mediawiki-api


    【解决方案1】:

    在服务器端,您可以从数据库中导出。在远程,Pywikipediabot 有一个名为get.py 的脚本,它可以获取给定文章的 wikicode。手动操作也很简单,有点像这样(从内存中写入,可能会出现错误):

    import wikipedia as pywikibot
    site = pywikibot.getSite() # assumes you have a user-config.py with default site/user
    article_list = ["Apple", "Banana", "Cupcake"]
    for title in article_list:
        page = pywikibot.Page(title, site)
        text = page.get() # handling of not found etc. exceptions omitted
        file = open(title + ".txt", "wt")
        file.write(text)
    

    由于 MediaWiki 的语言没有明确定义,解析/处理它的唯一可靠方法是通过 MediaWiki 本身; Pywikipediabot 中不支持该功能,并且尝试执行此操作的少数工具会因模板复杂而失败。

    【讨论】:

      【解决方案2】:

      看起来getText.php 是一个内置的服务器端维护脚本,用于导出特定文章的维基文本。 (比查询数据库更容易。)

      通过Publishing from MediaWiki 找到它,它涵盖了从 MediaWiki 导出的所有角度。

      【讨论】:

        猜你喜欢
        • 2016-04-19
        • 2023-03-17
        • 1970-01-01
        • 1970-01-01
        • 2021-02-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-07-14
        相关资源
        最近更新 更多