2012-09-27 56 views
0

似乎Botoofficial Amazon API module for Python,並this one is for Tornado,所以這裏是我的問題:如何使用Boto獲得亞馬遜價格?

  • 它不提供分頁(僅要求10的產品,因爲亞馬遜提供每頁10種產品,那麼我只想要得到的第一頁...),那麼怎麼樣(示例代碼?)
  • 然後如何解析產品解析,我用python-amazon-simple-product-api,但可惜它不提供分頁,所以所有的報價不斷迭代。
+0

請幫忙嗎? –

回答

3

通常,分頁由客戶端請求api執行。要在博託完成這個工作,你需要切斷你的系統。舉例來說,假設你通過boto調用AWS,使用get_all_instances def;您需要以某種方式存儲這些內容,然後跟蹤哪些服務器已顯示,哪些不顯示。據我所知,boto沒有大多數開發人員用於MySQL的LIMIT功能。就個人而言,我掃描我的所有實例,並藏匿他們蒙戈像這樣:

for r in conn.get_all_instances():  # loop through all reservations 
    groups = [g.name for g in r.groups] # get a list of groups for this reservation 
    for x in r.instances:     # loop through all instances with-in reservation 
     groups = ','.join(groups)   # join the groups into a comma separated list 
     name = x.tags.get('Name','');  # get instance name from the 'Name' tag 

     new_record = { "tagname":name, "ip_address":x.private_ip_address, 
         "external_ip_nat":x.ip_address, "type":x.instance_type, 
         "state":x.state, "base_image":x.image_id, "placement":x.placement, 
         "public_ec2_dns":x.public_dns_name, 
         "launch_time":x.launch_time, "parent": ObjectId(account['_id'])} 
     new_record['groups'] = groups 
     systems_coll.update({'_id':x.id},{"$set":new_record},upsert=True) 
     error = db.error() 
     if error != None: 
      print "err:%s:" % str(error) 

你也可以在try/catch塊包裝這些。由你決定。一旦你把他們從博託身上拿走,應該做一些小事來完成切割工作。

- Jess

+0

哇!這是一個黑客; o 謝謝 –

相關問題