2012-07-13 140 views
3

我無法理解維基百科API。查詢維基百科數據頁面

孤立一個鏈接,通過處理JSON,我得到的響應將請求發送到http://en.wikipedia.org/w/api.php

假設我得到了以下link,我如何才能像最新信息的訪問後,出生等

我正在使用python。我試圖做一個

import urllib2,simplejson 
search_req = urllib2.Request(direct_url_to_required_wikipedia_page) 
response = urllib2.urlopen(search_req) 

我已經嘗試閱讀api。但是,我無法弄清楚如何從特定頁面提取數據。

+0

你看過[docs](https://www.mediawiki.org/wiki/API:Main_page)嗎? – Bergi 2012-07-13 14:28:25

回答

5

嘗試:

import urllib 
import urllib2 
import simplejson 

url = 'http://en.wikipedia.org/w/api.php' 
values = {'action' : 'query', 
      'prop' : 'revisions', 
      'titles' : 'Jennifer_Aniston', 
      'rvprop' : 'content', 
      'format' : 'json'} 

data = urllib.urlencode(values) 
req = urllib2.Request(url, data) 
response = urllib2.urlopen(req) 
json = response.read() 

變量JSON是維基百科頁面的JSON。你現在可以用simplejson或其他任何方式解析它...

1

你不會從API那裏得到像出生日期這樣的信息,至少不是直接的。您可以做的最好的方式是獲取頁面的代碼(或呈現的HTML)並解析它以獲取所需的信息。

作爲替代方案,您可能需要查看DBpedia

+0

我知道,我無法直接獲取該信息。我試着直接下載頁面,它給了我一個403錯誤。我無能爲力。不管怎麼說,多謝拉。 – garak 2012-07-13 14:18:14

+0

如果您獲得403,請閱讀[維基媒體用戶代理策略](http://meta.wikimedia.org/wiki/User-Agent_policy)。 – svick 2012-07-13 15:56:47