2013-12-16 45 views
4

我正在嘗試訪問opencorporates.com。該頁面說明這是GET方法http://api.opencorporates.com/companies/gb/00102498?api_token=ab123cd45的認證版本。如何在OpenCorporates REST API中使用訪問令牌?

這是我的代碼來訪問數據集。在這裏,我正在通過我在文件中收集的代碼更改轄區代碼。即使我不使用api標記,我也可以收集到與api標記相同數量的數據。我在這裏做錯了什麼?

import urllib2 
import json,os 

f = open('codes','r') 
for line in f.readlines(): 
    id = line.strip('\n') 
    url = 'http://api.opencorporates.com/v0.2/companies/search?q=&jurisdiction_code={0}&per_page=26&current_status=Active&page={1}?api_token=ab123cd45' 
    i = 0 
    directory = id 
    os.makedirs(directory) 
    while True: 
     i += 1 
     req = urllib2.Request(url.format(id, i)) 
     print url.format(id,i) 
     try: 
     response = urllib2.urlopen(url.format(id, i)) 
     except urllib2.HTTPError, e: 
     break 
     content = response.read() 
     fo = str(i) + '.json'  
     OUTFILE = os.path.join(directory, fo) 
     with open(OUTFILE, 'w') as f: 
      f.write(content) 

回答

2

您的網址的結尾是這樣的:?api_token=ab123cd45,但它已經在網址的查詢字符串部分,所以它應該是這樣的:&api_token=ab123cd45。 (將?替換爲&。)

在使用API​​時,您應該考慮使用Requests

相關問題