Skip to main content
 首页 » 编程设计

python之来自 cookie 的 Python MediaWiki 身份验证

2025年05月04日10langtianya

在某些 Python CGI 脚本(在同一域,ofc)中使用 MediaWiki cookie 进行身份验证(尤其是 MW 的 OpenID)的最简单方法是什么?

也可以从 python 访问 MediaWiki 数据库。

请您参考如下方法:

将 Cookies 与 mediawiki 一起使用的一种非常简单的方法如下:

from cookielib import CookieJar 
import urllib2 
import urllib 
import json 
 
cj = CookieJar() 
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) 

现在,可以使用 opener 发出请求。例如:

login_data = { 
'action': 'login', 
'lgname': 'Example', 
'lgpassword': 'Foobar', 
'format': 'json' 
} 
data = urllib.urlencode(login_data) 
request = opener.open('http://en.wikipedia.org/w/api.php',data) 
content = json.load(request) 
login_data['token'] = content['login']['token'] 
data_2 = urllib.urlencode(login_data) 
request_2 = opener.open('http://en.wikipedia.org/w/api.php',data_2) 
content_2 = json.load(request_2) 
print content_2['login']['result'] 

在上面的示例中,如果未创建 Cookiejar,则登录将无法完全正常工作,需要另一个 token 。不过,建议使用已经创建的 mediawiki 包装器,例如 pywikipedia , mwhair , pytybot , simplemediawiki或 wikitools , 以及数百个其他 mediawiki 包装器在 python 中。