葫芦又写于2020年1月21日。
存档萌娘百科中文站的指定页面的维基文本。
萌娘百科®、Moegirlpedia®是注册商标。此程序仅提供存档功能。有关使用存档的内容时需遵守的版权协定,请参阅萌娘百科的版权信息。
此程序“按原样”提供。请在运行之前按你的需要调整其中的内容。本人不负责提供教程等。
本程序依赖萌娘百科的API。有关API的内容,参见萌娘百科的API沙盒。
在安装完成Python之后,需要额外安装requests包。或者请自行修改代码为使用urllib等。
-
在
PAGELIST.txt中按格式写入你存档的页面的类型、ID、标题。中间用制表符隔开。
页面类型可以随意定义。可以根据需要对页面进行分类,然后只存档需要的类型的页面。
如果不知道其中的某个值,可以空出。但需要保证所有页面的都给出了某一值,比如都给出了页面ID。 -
在同目录下创建文件夹
archive/。在文件夹中创建文本文档!.txt。文本文档的初始内容为{}。
注意:初次存档时,文本文档的初始内容一定要手动设置好。
存档将存放在文件夹中,文本文档将记录存档的数据,以便下次存档时读取。 -
运行
moegirl_archive.py,按下Enter键开始存档。
屏幕上将显示存档的过程。网络出现问题时,会输出一个.并自动重试。
[新]表示这是第一次存档这个页面。
[覆]表示之前存档过这个页面,本次存档覆盖了之前的存档。
[移]表示之前的存档中的页面标题与实际页面标题不一致,即在上次存档之后页面被移动至新的标题。请手动删除之前的存档。
[-]在上次存档后没有发生变化后的页面,本次存档时会跳过。将第121行的#删掉即可在屏幕上输出被跳过的页面的信息。
初次存档,存档1000个页面大约需要20分钟。覆盖原有存档,则要看有多少页面需要覆盖。
- 第19~21行,页面列表、存档存放的文件夹、记录存档的数据文件。
- 第23行,文件的编码。
- 第35行,需要存档的页面的类型代码。
- 第118行,在页面标题中遇到不能作为文件名的字符时的转换列表。
- 第140~142行,放在存档数据中的备注信息,包括备注文字、时间、计算机名。可以修改为自定义的文字。
- 本程序中是按照页面ID查找页面的。如果需要改成根据页面标题查找,这时API中的
indexpageids功能就要起作用了;自己看着改哈。 - 如果想要存档其他基于MediaWiki的站点,修改第25行的网址为对应站点的API地址即可。别忘了把文件设为初始内容。
P = Page,页面
R = Revision,历史版本
存放数据的文件中按照{pageid: (revid, title), ...}的格式存储。
示例文件中的PAGELIST.txt和!.txt是已经运行过一次的结果,但示例文件中没有给出存档结果。
请注意,在存档之后如果人为将存档文件移动或删除,或对数据进行修改,再次存档时将无法识别这些变化,可能不能按预期存档;特别是当文件被修改,但数据没有变动,同时页面也没有被编辑时,可能不会用新内容覆盖旧内容。
初次存档前,请按照上文设置数据文件的初始内容。
示例文件的页面列表其实是萌娘百科LoveLive!系列的全部页面。
实际上,此程序可以存档任意一个基于MediaWiki的站点。只需保证该站点的对应API是开放的。
此外,如果配合使用API中的query.allpages,即可存档该站点的所有页面,而不需使用列表指定。