【发布时间】:2018-06-06 15:49:17
【问题描述】:
我最近学会了如何从烹饪网站上抓取我妈妈的食谱。我目前的目标是将这些食谱放入自托管的 mediawiki 服务器。由于我只知道 python,我正在尝试使用 GET 和 POST 请求以及 API 来创建这些页面。我尝试了各种 python 脚本,例如 pywikibot、mwclient 和 wptools,以取得各种形式的成功。后两者在编辑/创建 wiki 页面时确实缺乏文档,并且 pywikibot 有一些错误(已报告)阻止我登录或使用 pagefromfile.py 脚本。
幸运的是,mediawiki website 上有一个示例 python 代码。
username = 'myusername'
password = 'mypassword' # see https://www.mediawiki.org/wiki/Manual:Bot_passwords
api_url = 'https://my.wiki.com/api.php'
section = 'new'
sectiontitle = 'Ingredients'
summary = 'ingredients'
message = {" \n\u2022 6 db óriási nyers padlizsán <br>"
+"\n\u2022 4 db édes, húsos piros paprika, egészben <br>"
+"\n\u2022 3 db fekete paradicsom, vastagabb karikára szelve <br>"
+"\n\u2022 1 db zöld jalapeno paprika, egészben <br>"
+"\n\u2022 2 db nagy vöröshagyma, vastagabb karikára vágva <br>"
+"\n\u2022 10 cikk fokhagyma <br>"
+"\n\u2022 1 ek édes piros paprika <br>"
+"\n\u2022 ízlés szerint só <br>"
+"\n\u2022 ízlés szerint bors <br>"
}
page = 'Test'
这段代码创建了一个包含相关部分和消息的页面,它看起来像this。
问题:
- 如何创建多个章节标题?
- 如果我输入 wiki 代码,为什么 mediawiki 不格式化它?例如,如果我发送消息“# 6db oriasi nyers”,那么 mediawiki 将创建一条带有“# 6db oriasi nyers”而不是“1. 6db oriasi nyers”的消息。
【问题讨论】:
-
Pywikibot 绝对是最简单/最通用的方法,用它找出你的问题可能会更容易。大多数其他 API 客户端(mwapi 也是一个不错的客户端)只是让向 API 发送请求变得容易,但让您将请求放在一起。所以你必须查看docs 或API sandbox。
标签: python mediawiki mediawiki-api pywikibot