Python 通过Json获取页面内容
链接:Python 通过Json获取页面内容,python,json,mediawiki,mediawiki-api,Python,Json,Mediawiki,Mediawiki Api,链接: 从上面的json文件中,我想得到“*”的值。我正在使用python并设置了请求。通常,如果在获取页面内容之前不需要获取页面id,我可以这样做。但事实并非如此,我遇到了一些麻烦,需要一些帮助。该页面实际上不是json,而是json在html中的表示。要请求json,请删除url末尾的“fm” 在这段代码中,我将使用urllib2和json包将json加载到字典中,然后访问*项 url = "http://creepypasta.wikia.com/api.php?%20action=que
从上面的json文件中,我想得到“*”的值。我正在使用python并设置了请求。通常,如果在获取页面内容之前不需要获取页面id,我可以这样做。但事实并非如此,我遇到了一些麻烦,需要一些帮助。该页面实际上不是json,而是json在html中的表示。要请求json,请删除url末尾的“fm” 在这段代码中,我将使用urllib2和json包将json加载到字典中,然后访问*项
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]['*']
如果您不知道要查看的页码,请考虑找到的方法(下面复制):
我添加fm是为了给这里的用户提供一个结构化的json视图。我的问题是我不知道我试图获取内容的页面的id。只是它的名字。我已经更新了我的答案来说明这一点。请让我知道这是否有帮助。如果我很了解你,它与MediaWiki并没有真正的联系。这相当于“如何获取JSON的一些子树”。如果是,请删除令人困惑的MediaWiki标记。
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]['*']