每天只运行10k个请求,第二天运行10k个,依此类推

时间:2012-12-18 14:09:53

标签: python api

我正在做一些从某些API获取一些数据的程序。 我使用yql来访问yahoo geo的东西,以匹配一些geonames id。例如:

def get_woeid(geonames_id):
  y = yql.Public()
  query = 'select * from geo.concordance where \
          namespace="geonames" and text="' + geonames_id + '"'
  result = y.execute(query)
  for row in result.rows:
      print row.get('woeid')

此函数从数据库获取geonames_id并执行请求以将该id与yahoo geo中的woeid(地球ID)匹配。

问题是这个api只允许每天10k的请求,所以我必须使用一些逻辑来获取10k请求并“等待”,第二天它将继续下一个10k .. 我可以在所有数据上开始循环,如果发出了10k请求,那么做一些等待或睡眠的东西直到第二天,并做其余的事情,但这应该做得更好我想,但我真的不知道如何。

希望有人可以在这里帮忙。

谢谢:)

1 个答案:

答案 0 :(得分:0)

好的,我会这样做的。我将在每次查询后保存id,并编写一个脚本,用于过滤丢失了woeids的对象并查询它们(但不超过10k)并且每天使用例如克罗诺斯。

感谢所有人:)