使用 Python 更新媒体 wiki 文章?
你好 我有一个 cron 作业,它收集有关服务的一些统计信息。我需要 cron 作业以编程方式更新媒体 wiki 页面(附加到页面)。 我在 cron 中使用 python,那么我最好的选择是什么,是否有 mediawiki/python 库的示例,或者 Media wiki 是否公开了我可以使用的任何 HTTP/REST api(可能通过扩展)。
谢谢
Hi
I have a cron job which collects some statistics about a service. I need the cron job to update a media wiki page (append to the page) programmatically.
I am using python for the cron so what are my best options, are there any examples of mediawiki/python libraries or does Media wiki expose any HTTP/REST apis which I can use (may be through an extension).
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果 PyWikipediaBot 太重,请尝试 Python 模块 mwclient。
您可以登录、查看页面的当前内容、进行更改,然后在不到 10 行的时间内查看它(示例)。
If PyWikipediaBot is too heavy, try the Python module mwclient.
You can login, view a page’s current content, make your change and then view it in less than 10 lines (example).
如果您在与 cron 作业相同的计算机上运行 mediawiki,则可以使用 maintanence 目录中的 edit.php 脚本。
在此示例中,
/opt/page_renderer.py
输出 wiki markdown。这将通过管道传输到具有-b
标志(将其标记为机器人编辑)和您要编辑的页面标题的编辑脚本。当然,您可以从任何程序通过管道输入编辑脚本,如果您在不同的地方安装了 mediawiki,则可能需要更改编辑脚本的路径。
If you are running mediawiki on the same computer as the cron job, then you can use the edit.php script found in the maintanence directory.
In this example,
/opt/page_renderer.py
outputs wiki markdown. This gets piped to the edit script which has the-b
flag (to mark it as a bot edit) and the title of the page you wish to edit.Naturally, you can pipe from any program into the edit script, and you might need to change the path to the edit script if you have mediawiki installed somewhere different.
作为
的提交者
https://github.com/WolfgangFahl/py-3rdparty-mediawiki
我推荐这个库的命令行功能,它允许
您可以直接从脚本使用标记。
该库与 Semantic MediaWiki 配合使用效果最佳,您可以在其中查询您感兴趣的页面:
修改标记后,您可以使用以下命令恢复页面:
As a committer of
https://github.com/WolfgangFahl/py-3rdparty-mediawiki
i am recommending the command line functionality of this library which allows
you to work with the markup directly from a script.
The library works best with a Semantic MediaWiki where you can query the pages your are interested in:
after modifying the markup you can restore the pages with: