嗨,我有一个cron工作,收集有关服务的一些统计数据。我需要cron作业,以编程方式更新媒体维基页面(附加到页面)。我在cron上使用python,那么我最好的选择是什么,有没有mediawiki/python库的例子,或者Media wiki是否公开了我可以使用的HTTP/REST apis (可能是通过扩展)。
谢谢
发布于 2011-05-05 00:58:06
如果Python太重,可以尝试使用PyWikipediaBot模块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')发布于 2018-07-04 12:07:14
如果在运行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安装在不同的位置,则可能需要更改编辑脚本的路径。
发布于 2021-10-27 10:41:52
作为提交者
https://github.com/WolfgangFahl/py-3rdparty-mediawiki我推荐这个库的命令行功能,它允许您直接从脚本处理标记。
该库与语义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 ...✅https://stackoverflow.com/questions/4502993
复制相似问题