鏈接頁面內容:http://creepypasta.wikia.com/api.php?%20action=query&prop=revisions&titles=Main_Page&rvprop=content&indexpageids=1&format=jsonfm獲得通過JSON
從JSON文件上面我想要得到的值「*」。我使用Python並有請求設置。通常,如果我不需要在獲取頁面內容之前獲取頁面ID,我可以這樣做。但是,如果看不到,我會遇到一些麻煩,需要一點幫助。
鏈接頁面內容:http://creepypasta.wikia.com/api.php?%20action=query&prop=revisions&titles=Main_Page&rvprop=content&indexpageids=1&format=jsonfm獲得通過JSON
從JSON文件上面我想要得到的值「*」。我使用Python並有請求設置。通常,如果我不需要在獲取頁面內容之前獲取頁面ID,我可以這樣做。但是,如果看不到,我會遇到一些麻煩,需要一點幫助。
該頁面實際上並不是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]['*']
我添加了fm爲用戶提供了一個結構化的json視圖。我的問題是,我不知道我試圖獲取內容的頁面的ID。只是它的名字。 – cataclysmicpinkiepie
我已經更新了我的答案來解決這個問題。請讓我知道這可不可以幫你。 – nfazzio
如果我理解你很好,這是不是真的對於MediaWiki。這就是「如何獲得JSON的一些子樹」。如果是這樣,請刪除混淆的MediaWiki標籤。 – skalee