4

我正在尝试访问 opencorporates.com。该页面说这是 GET 方法http://api.opencorporates.com/companies/gb/00102498?api_token=ab123cd45的认证版本。

这是我访问数据集的代码。在这里,我通过在文件中收集的代码更改管辖区代码。即使我不使用 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)
4

1 回答 1

2

你的 url 的结尾看起来像这样: ?api_token=ab123cd45,但它已经在 url 的查询字符串部分,所以它应该看起来像: &api_token=ab123cd45。(将 替换?&。)

在使用 API 时,您应该考虑使用请求。

于 2013-12-16T19:51:58.613 回答