【问题标题】:How to use the Mediawiki API to create pages with longform texts and lists in python如何使用 Mediawiki API 在 python 中创建带有长文本和列表的页面
【发布时间】: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

问题:

  1. 如何创建多个章节标题?
  2. 如果我输入 wiki 代码,为什么 mediawiki 不格式化它?例如,如果我发送消息“# 6db oriasi nyers”,那么 mediawiki 将创建一条带有“# 6db oriasi nyers”而不是“1. 6db oriasi nyers”的消息。

【问题讨论】:

  • Pywikibot 绝对是最简单/最通用的方法,用它找出你的问题可能会更容易。大多数其他 API 客户端(mwapi 也是一个不错的客户端)只是让向 API 发送请求变得容易,但让您将请求放在一起。所以你必须查看docsAPI sandbox

标签: python mediawiki mediawiki-api pywikibot


【解决方案1】:
  1. 如何创建多个章节标题?

一种方法是在消息中添加\n== section title ==\n。 (使用MediaWiki markup。)

  1. 如果我输入 wiki 代码,为什么 mediawiki 不格式化?例如,如果我发送消息“# 6db oriasi nyers”,那么 mediawiki 将创建一条带有“# 6db oriasi nyers”而不是“1. 6db oriasi nyers”的消息。

我最好的猜测是您使用了不正确的语法,例如# 标记之前有一个空格(这使得文本被视为预格式化文本)。

不看完整代码就很难判断。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-15
    • 2017-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多