Batch file 使用wget或curl导入wikipedia文章(在windows上)

Batch file 使用wget或curl导入wikipedia文章(在windows上),batch-file,cmd,mediawiki,wget,wikipedia,Batch File,Cmd,Mediawiki,Wget,Wikipedia,我有一个包含维基百科文章(XML格式)的文件夹 我希望通过Webinterface导入文件(特殊:导入)。目前,我用imacro做这件事。但这通常会挂起,需要大量资源(内存),一次只能处理一个文件。因此,我正在寻找更好的解决方案 我现在明白了,我必须登录才能获得edittoken。这是上传文件所必需的 已经读过了。卡住 要想跑进去,需要两条wget/curl“命令行” 登录并获取edittoken(将用户和pwd推送到表单,获取edittoken) 将文件推送到公式(将edittoken和内容推

我有一个包含维基百科文章(XML格式)的文件夹

我希望通过Webinterface导入文件(特殊:导入)。目前,我用imacro做这件事。但这通常会挂起,需要大量资源(内存),一次只能处理一个文件。因此,我正在寻找更好的解决方案

我现在明白了,我必须登录才能获得edittoken。这是上传文件所必需的

已经读过了。卡住 要想跑进去,需要两条wget/curl“命令行”

  • 登录并获取edittoken(将用户和pwd推送到表单,获取edittoken)
  • 将文件推送到公式(将edittoken和内容推送到表单)
  • 构建循环以处理多个文件,我可以自己做

  • 首先,让我们明确一点:web界面不是实现这一点的正确方法。MediaWiki安装要求包括对服务器的shell访问,这将允许您根据需要使用importDump.php进行更重的导入

    第二,如果您想从web界面导入Wikipedia文章,那么您不应该直接下载XML:Special:import可以帮您完成这项工作。设置

    $wgImportSources = array( 'wikipedia' );
    
    或其他(),访问Special:Import,从下拉列表中选择Wikipedia,输入要导入的标题,然后确认

    第三,如果您想使用命令行,那么为什么不使用MediaWiki web API呢。大多数客户为您处理代币


    最后,如果您真的坚持使用wget/curl over index.php,您可以在浏览器中访问
    api.php?action=query&meta=tokens
    (查看api.php了解MediaWiki版本的确切说明),然后执行以下操作

    curl -d "&action=submit&...@filename.xml" .../index.php?title=Special:Import
    

    (故意分割代码,以便在不知道自己在做什么的情况下运行它)。

    可能重复是和否,这只是第二个问题的解决方案,但如何获取edittoken并发布它?OP从何处获取API标记?API.php?action=query&meta=tokens;但是,不同MediaWiki版本的确切URL因操作而异(它仍在1.25alpha版本中发展)。使用(3),无需担心代币。太好了。你能在你的回答中包括这一点吗?