我尝试使用带有本地mediawiki的mwclient创建一个页面。
有了wikipedia.org,一切都很好。
使用本地mediawiki输入以下命令:

import mwclient
site = mwclient.Site("192.168.1.143")

结果是出现以下错误:
File "/Library/Python/2.7/site-packages/mwclient/http.py", line 152, in request
raise errors.HTTPStatusError, (res.status, res)
mwclient.errors.HTTPStatusError: (404, <httplib.HTTPResponse instance at 0x104368488>)

如果我在浏览器中键入IP或主机名,它就会工作。与ping命令相同。
我将url lib用于:
a=urllib.urlopen('http://www.google.com/asdfsf')
a.getcode()

得到了200 OK代码。
这里有什么问题?有什么想法吗?

最佳答案

问题在于,mwclient希望api.php(它用来访问wiki)位于wikimedia wiki使用的位置/w/,而不是直接位于默认的/
根据the documentation for Site,您需要使用path参数:

site = mwclient.Site('192.168.1.143', path='/')

07-26 09:36