帮助:Bot
简单
入门
进阶
复杂
开发
Bot,即通常MediaWiki用户口中所说的“机器人”,但他并不是“robot”或者“android”的意思。
- 概括的说,bot一般指的是在MediaWiki或其他维基软件中,通过调用系统接口(API)来实现的action(例如edit、delete、info、purge等等)的自动化。
- bot通常来说伴随着大批量、大规模的重复性操作。与人为的构思条目、编辑内容有着较大的区别,为了避免对正常编辑者编辑行为的误导、混淆,我们通常会在软件层将bot操作进行特殊标记,不会在默认的贡献列表、修改记录中出现;
- 在灰机,bot行为不会被统计为编辑数量,因此也不会进入用户编辑次数排行榜的统计之中,在最近更改中,通过点选“显示机器人”可以查看bot操作。
- 同时为了避免混淆个人贡献,我们一般不鼓励使用默认的用户身份进行bot操作,而是鼓励创建专门的bot账号,并授予bot权限,专门处理bot行为。
bot的操作
使用已有的bot框架
- AutoWikiBrowser,简称“AWB”,是一个适用于所有编辑者,特别是站长、数据管理员的自动批处理bot软件。
- 灰机Wiki数据更新器,简称“Updater”,是一个针对灰机构建的,python编写的GUI功能bot软件,与AWB功能互补。
在编程语言中使用bot
在Python、JS(线下)、MediaWiki JS(线上)或者其他编程语言,比如C#中,用户可以自行调用MediaWiki的API来进行脚本操作,通过对编辑行为的edit
中添加bot=True
的字段,来进行bot操作。
- Python中使用requests库进行直接通信,endpoint的书写请严格对照MediaWiki的官方文档。
- Python中使用mwclient库来进行操作,mwclient是已经封装过的官方API脚本,底层使用requests实现,可以简化代码的书写。
关于pywikibot
出于以下原因,我们不推荐使用pywikibot
- 没有GUI
- 需要编程基础
- 功能与AWB、Updater重叠
- 配置环境繁琐
AWB、Updater与python脚本的比较
建议使用AWB的场景
我们推荐在以下场景使用AWB、
- 大规模的维护页面,比如清洁页面(删除冗余的杂碎内容,对齐模板参数,修改分类,批量删除分类,添加消歧义和重定向)
- 批量替换链接,或者模板,常见于译名出现变更时,用以搜索和替换。
- 获取引用了特定模板的页面列表
建议使用Updater的场景
以下情况我们建议使用帮助:灰机Wiki数据更新器
- 上传、更新模板内的参数
- 批量传图,批量创建data页面
- 批量删除页面
建议使用本地脚本的场景
以下情况我们建议使用自定义的python脚本
- 您会写python
- 有过于具体的修改、替换方案,尤其是带着本地数据对照修改页面时
来自灰机wiki