通过Json获取页面内容

时间:2013-12-24 00:48:27

标签: python json mediawiki mediawiki-api

链接:http://creepypasta.wikia.com/api.php?%20action=query&prop=revisions&titles=Main_Page&rvprop=content&indexpageids=1&format=jsonfm

从上面的json文件中我想得到“*”的值。我正在使用python并请求设置。通常,如果我在获取页面内容之前不需要获取页面ID,我可以这样做。但看到它不是我遇到了一些麻烦,需要一些帮助。

1 个答案:

答案 0 :(得分:0)

该页面实际上不是json - 它是html中json的表示。要请求json,请删除网址末尾的“fm”。

在这段代码中,我将使用urllib2和json包将json加载到字典中,然后访问* item。

url = "http://creepypasta.wikia.com/api.php?%20action=query&prop=revisions&titles=Main_Page&rvprop=content&indexpageids=1&format=json"
j = json.load(urllib2.urlopen(url))
value = j['query']['pages']['22491']['revisions'][0]['*']

如果您不知道要查看的页码,请考虑找到的方法here(在下面复制):

def _finditem(obj, key):
    if key in obj: return obj[key]
    for k, v in obj.items():
        if isinstance(v,dict):
            item = _finditem(v, key)
            if item is not None:
                return item

_finditem(j,'revisions')[0]['*']