【问题标题】:Updating a media wiki article using Python?使用 Python 更新媒体 wiki 文章?
【发布时间】:2011-05-29 00:41:12
【问题描述】:

嗨 我有一个 cron 作业,它收集有关服务的一些统计信息。我需要 cron 作业以编程方式更新媒体 wiki 页面(附加到页面)。 我将 python 用于 cron,所以我最好的选择是什么,是否有 mediawiki/python 库的任何示例,或者 Media wiki 是否公开了我可以使用的任何 HTTP/REST api(可能通过扩展)。

谢谢

【问题讨论】:

    标签: python api cron mediawiki


    【解决方案1】:

    如果 PyWikipediaBot 太重,试试 Python 模块mwclient

    您可以登录,查看页面的当前内容,进行更改,然后在不到 10 行的时间内查看它(example)

    import mwclient
    site = mwclient.Site('en.wikipedia.org')
    site.login('Pfctdayelise','password')
    page = site.Pages['User:Pfctdayelise/Test']
    text = page.edit()
    print text.encode('utf-8')
    newtext = "\n\nTesting the write api without logging in.\n"
    page.save(text+newtext,summary='testing write api')
    

    【讨论】:

      【解决方案2】:

      如果您与 cron 作业在同一台计算机上运行 mediawiki,则可以使用 maintanence 目录中的 edit.php 脚本。

      /bin/python /opt/page_renderer.py | php /var/www/mediawiki/maintenance/edit.php -b PageTitle
      

      在本例中,/opt/page_renderer.py 输出 wiki markdown。这将通过管道传送到具有-b 标志(将其标记为机器人编辑)和您要编辑的页面标题的编辑脚本。

      当然,您可以从任何程序通过管道传输到编辑脚本,如果您在其他地方安装了 mediawiki,则可能需要更改编辑脚本的路径。

      【讨论】:

        【解决方案3】:

        作为
        https://github.com/WolfgangFahl/py-3rdparty-mediawiki的提交者 我推荐这个库的命令行功能,它允许 您可以直接从脚本中使用标记。

        该库与 Semantic MediaWiki 配合使用效果最佳,您可以在其中查询您感兴趣的页面:

        $ wikibackup -s orth --backupPath "/home/user/wikibackup/orth_copy" -q "[[isA::Event]]" --limit 10
        
        
        downloading 10 pages from orth to /home/user/wikibackup/orth_copy
        
        1/10 (  10%): downloading " DBKDA 2021" ...✅
        2/10 (  20%): downloading "ENERGY 2021" ...✅
        3/10 (  30%): downloading "ICAS 2021" ...✅
        4/10 (  40%): downloading "ICNS 2021" ...✅
        5/10 (  50%): downloading 2021 ICIMP ...✅
        6/10 (  60%): downloading 3DUI 2020 ...✅
        7/10 (  70%): downloading 3IA 2009 ...✅
        8/10 (  80%): downloading 3PGIC 2010 ...✅
        9/10 (  90%): downloading 4S4D 2017 ...✅
        10/10 ( 100%): downloading 5GU 2017 ...✅
        

        修改标记后,您可以通过以下方式恢复页面:

        wikirestore -t orth --backupPath "/home/user/wikibackup/orth_copy"
        
        restoring 10 pages from /home/user/wikibackup/orth_copy to orth
        1/10 (  10%): restore 2021 ICIMP ...✅
        2/10 (  20%): restore "ICNS 2021" ...✅
        3/10 (  30%): restore 3PGIC 2010 ...✅
        4/10 (  40%): restore 4S4D 2017 ...✅
        5/10 (  50%): restore "ENERGY 2021" ...✅
        6/10 (  60%): restore 3DUI 2020 ...✅
        7/10 (  70%): restore " DBKDA 2021" ...✅
        8/10 (  80%): restore 3IA 2009 ...✅
        9/10 (  90%): restore "ICAS 2021" ...✅
        10/10 ( 100%): restore 5GU 2017 ...✅
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-11-23
          • 2015-12-14
          • 1970-01-01
          • 2023-03-25
          • 2019-08-22
          • 1970-01-01
          相关资源
          最近更新 更多