2012-09-27 1 views
0

il semble que Boto est le official Amazon API module for Python et this one is for Tornado, voici donc mes questions:comment obtenir des prix amazon en utilisant Boto?

  • 'offre paginations (demandes seulement 10 produits, car amazon propose 10 produits par page, alors je veux seulement obtenir le première page ...), alors comment (exemple de code?)
  • comment puis analyser l'analyse du produit, j'ai utilisé python-amazon-simple-product-api mais malheureusement, il ne propose pas de pagination, donc toutes les offres continuer à itérer.
+0

une aide s'il vous plaît? –

Répondre

3

généralement, la pagination est effectuée par le client demandeur de l'API. Pour faire cela dans boto, vous devrez couper vos systèmes. Par exemple, disons que vous appelez AWS via boto, en utilisant le paramètre get_all_instances def; vous devrez les stocker d'une manière ou d'une autre et ensuite suivre les serveurs qui ont été affichés et ceux qui ne l'ont pas été. À ma connaissance, boto n'a pas la fonctionnalité LIMIT que la plupart des développeurs utilisent depuis MySQL. Personnellement, je scanne toutes mes instances et les planque dans mongo comme ceci:

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) 

Vous pouvez également envelopper ces derniers dans des blocs try/catch. Dépend de vous. Une fois que vous les sortir de boto, devrait être trivial pour faire le travail de découpe.

- Jess

+0

ouah! c'est un hack; o merci –

Questions connexes