def getItemDetail(self, item_id=None): print "retrieving results for item", print item_id print "Using ebay trading SDK version %s" % ebaysdk.get_version() print "====================" # build and execute ebay API call GetItemTransactions api = trading(debug=self.opts.debug, config_file=self.opts.yaml, appid=self.opts.appid, certid=self.opts.certid, devid=self.opts.devid) token = api.api_config.get('token') api.execute('GetItem', {'ItemID': item_id, 'DetailLevel': 'ReturnAll'}) if api.error(): print api.error() raise Exception(api.error()) if api.response_content(): print "Call Success: %s in length" % len(api.response_content()) print "Response code: %s" % api.response_code() print "Response DOM: %s" % api.response_dom() debug_results = parseString(self.removeNonAscii( api.response_content())) print debug_results.toprettyxml()
def findSimilarProducts(opts): api = finding(siteid='EBAY', debug=opts.debug, appid=opts.appid, config_file=opts.yaml, warnings=True) #1. grab JSON from server #2. stringify JSON #3. api.execute(stringifiedjson) #4. return descriptions, etc api.execute('findItemsAdvanced', { }) if api.error(): raise Exception(api.error()) if api.response_content(): print("Call Success: %s in length" % len(api.response_content())) print("Response code: %s" % api.response_code()) print("Response DOM: %s" % api.response_dom()) dictstr = "%s" % api.response_dict() print("Response dictionary: %s..." % dictstr[:250]) print("Finding samples for SDK version %s" % ebaysdk.get_version()) (opts, args) = init_options() findSimilarProducts(opts)
def run(opts): api = Shopping(debug=opts.debug, appid=opts.appid, config_file=opts.yaml, warnings=True) print("Shopping samples for SDK version %s" % ebaysdk.get_version()) try: response = api.execute('FindProducts', {'QueryKeywords': 'Harry Potter', 'MaxEntries': 2, 'AvailableItemsOnly': 'true'}) dump(api) print("Matching Titles:") for item in response.reply.Product: print(item.Title) except ConnectionError as e: print(e) print(e.response.dict())
def run(opts): api = Shopping(debug=opts.debug, appid=opts.appid, config_file=opts.yaml, domain=opts.domain, warnings=True) print("Shopping samples for SDK version %s" % ebaysdk.get_version()) try: response = api.execute('FindPopularItems', {'QueryKeywords': 'Python'}) dump(api) print("Matching Titles:") for item in response.reply.ItemArray.Item: print(item.Title) except ConnectionError as e: print(e) print(e.response.dict())
def run(opts): api = Shopping(debug=opts.debug, appid=opts.appid, config_file=opts.yaml, warnings=True) print("Shopping samples for SDK version %s" % ebaysdk.get_version()) try: response = api.execute('FindPopularItems', {'QueryKeywords': 'Python'}) dump(api) print("Matching Titles:") for item in response.reply.ItemArray.Item: print(item.Title) except ConnectionError as e: print(e) print(e.response.dict())
def run(opts): api = shopping(debug=opts.debug, appid=opts.appid, config_file=opts.yaml) api.execute('FindPopularItems', {'QueryKeywords': 'Python'}) print "Shopping samples for SDK version %s" % ebaysdk.get_version() if api.error(): raise Exception(api.error()) if api.response_content(): print "Call Success: %s in length" % len(api.response_content()) print "Response code: %s" % api.response_code() print "Response DOM: %s" % api.response_dom() dictstr = "%s" % api.response_dict() print "Response dictionary: %s..." % dictstr[:50] print "Matching Titles:" for item in api.response_dict().ItemArray.Item: print item.Title
def run(opts): api = shopping(debug=opts.debug, appid=opts.appid, config_file=opts.yaml, warnings=True) api.execute('FindPopularItems', {'QueryKeywords': 'Python'}) print "Shopping samples for SDK version %s" % ebaysdk.get_version() if api.error(): raise Exception(api.error()) if api.response_content(): print "Call Success: %s in length" % len(api.response_content()) print "Response code: %s" % api.response_code() print "Response DOM: %s" % api.response_dom() dictstr = "%s" % api.response_dict() print "Response dictionary: %s..." % dictstr[:50] print "Matching Titles:" for item in api.response_dict().ItemArray.Item: print item.Title
def getItemDetail(self, item_id = None): print "retrieving results for item", print item_id print "Using ebay trading SDK version %s" % ebaysdk.get_version() print "====================" # build and execute ebay API call GetItemTransactions api = trading(debug=self.opts.debug, config_file=self.opts.yaml, appid=self.opts.appid, certid=self.opts.certid, devid=self.opts.devid) token = api.api_config.get('token') api.execute('GetItem', {'ItemID': item_id, 'DetailLevel': 'ReturnAll'}) if api.error(): print api.error() raise Exception(api.error()) if api.response_content(): print "Call Success: %s in length" % len(api.response_content()) print "Response code: %s" % api.response_code() print "Response DOM: %s" % api.response_dom() debug_results = parseString(self.removeNonAscii(api.response_content())) print debug_results.toprettyxml()
def run(opts): api = trading(debug=opts.debug, config_file=opts.yaml, appid=opts.appid, certid=opts.certid, devid=opts.devid) api.execute('GetCharities', {'CharityID': 3897}) # checkfor errors if api.error(): raise Exception(api.error()) print "Trading samples for SDK version %s" % ebaysdk.get_version() if api.response_content(): print "Call Success: %s in length" % len(api.response_content()) print "Response code: %s" % api.response_code() print "Response DOM: %s" % api.response_dom() dictstr = "%s" % api.response_dict() print "Response dictionary: %s..." % dictstr[:150] print api.response_dict().Charity.Name print api.response_content()
def run(opts): p = parallel() apis = [] api1 = finding(parallel=p, debug=opts.debug, appid=opts.appid, config_file=opts.yaml) api1.execute('findItemsAdvanced', {'keywords': 'python'}) apis.append(api1) api4 = html(parallel=p) api4.execute('http://www.ebay.com/sch/i.html?_nkw=Shirt&_rss=1') apis.append(api4) api2 = finding(parallel=p, debug=opts.debug, appid=opts.appid, config_file=opts.yaml) api2.execute('findItemsAdvanced', {'keywords': 'perl'}) apis.append(api2) api3 = finding(parallel=p, debug=opts.debug, appid=opts.appid, config_file=opts.yaml) api3.execute('findItemsAdvanced', {'keywords': 'php'}) apis.append(api3) p.wait() print "Parallel example for SDK version %s" % ebaysdk.get_version() if p.error(): raise Exception(p.error()) for api in apis: print "Call Success: %s in length" % len(api.response_content()) print "Response code: %s" % api.response_code() print "Response DOM: %s" % api.response_dom() dictstr = "%s" % api.response_dict() print "Response dictionary: %s...\n" % dictstr[:50]
def run(opts): api = Shopping(debug=opts.debug, appid=opts.appid, config_file=opts.yaml, warnings=True) print("Shopping samples for SDK version %s" % ebaysdk.get_version()) try: api.execute('FindPopularItems', {'QueryKeywords': 'Python'}) if api.response_content(): print("Call Success: %s in length" % len(api.response_content())) print("Response code: %s" % api.response_code()) print("Response DOM: %s" % api.response_dom()) dictstr = "%s" % api.response_dict() print("Response dictionary: %s..." % dictstr[:50]) print("Matching Titles:") for item in api.response_dict().ItemArray.Item: print(item.Title) except ConnectionError as e: print e
raise Exception(api.error()) if api.response_content(): print "Call Success: %s in length" % len(api.response_content()) print "Response code: %s" % api.response_code() print "Response DOM: %s" % api.response_dom() dictstr = "%s" % api.response_dict() print "Response dictionary: %s..." % dictstr[:500] if __name__ == "__main__": print "Finding samples for SDK version %s" % ebaysdk.get_version() (opts, args) = init_options() findQuery= {'keywords': "laptop" ,'categoryId': [{'value': "177"}], 'itemFilter': [{'name': "Condition",'value': "New"},{'name': "LocatedIn",'value': "US"}], 'paginationInput':{'entriesPerPage':100,'pageNumber':1} } dict1=run(opts,findQuery) #for algo,val in dict1.iteritems(): # print algo # raw_input('') # res=dict1['searchResult'] items=res['item']#this is a list for element in items: categoryId=element['primaryCategory']['categoryId']['value']
api = Policies(debug=opts.debug, config_file=opts.yaml, appid=opts.appid, certid=opts.certid, devid=opts.devid) api.execute('getSellerProfiles') dump(api) except ConnectionError as e: print(e) print(e.response.dict()) def getConsolidationJobStatus(opts): try: api = Policies(debug=opts.debug, config_file=opts.yaml, appid=opts.appid, certid=opts.certid, devid=opts.devid) api.execute('getConsolidationJobStatus') dump(api) except ConnectionError as e: print(e) print(e.response.dict()) if __name__ == "__main__": (opts, args) = init_options() print("Business Policies API Samples for version %s" % ebaysdk.get_version()) getSellerProfiles(opts) getConsolidationJobStatus(opts)
print(e) print(e.response.dict()) def run_unicode(opts): try: api = finding(debug=opts.debug, appid=opts.appid, config_file=opts.yaml, warnings=True) api_request = { 'keywords': u'Kościół', } response = api.execute('findItemsAdvanced', api_request) for i in response.reply.searchResult.item: if i.title.find(u'ś') >= 0: print("Matched: %s" % i.title) break dump(api) except ConnectionError as e: print(e) print(e.response.dict()) if __name__ == "__main__": print("Unicode samples for SDK version %s" % ebaysdk.get_version()) (opts, args) = init_options() run_unicode(opts)
parser = OptionParser(usage=usage) parser.add_option("-d", "--debug", action="store_true", dest="debug", default=False, help="Enabled debugging [default: %default]") (opts, args) = parser.parse_args() return opts, args def run(opts): try: api = HTTP(debug=opts.debug, method='GET') api.execute('http://feeds.wired.com/wired/index') dump(api) except ConnectionError as e: print e if __name__ == "__main__": print("HTTP samples for SDK version %s" % ebaysdk.get_version()) (opts, args) = init_options() run(opts)
def getSellerItems(self, seller_id=None, cat_id=None, days=None): print "retrieving items for seller/category id: ", print seller_id + " / ", print cat_id print "Using ebay trading SDK version %s" % ebaysdk.get_version() print "====================" if days > 0: earliest = datetime.datetime.now() latest = earliest + (datetime.timedelta(days)) earliest_s = 'EndTimeFrom' latest_s = 'EndTimeTo' else: latest = datetime.datetime.now() earliest = latest + (datetime.timedelta(days)) earliest_s = 'StartTimeFrom' latest_s = 'StartTimeTo' print earliest print latest # build and execute ebay API call GetItemTransaction api = trading(debug=self.opts.debug, config_file=self.opts.yaml, appid=self.opts.appid, certid=self.opts.certid, devid=self.opts.devid) token = api.api_config.get('token') page = 1 api.execute('GetSellerList', {'DetailLevel': 'ItemReturnDescription', \ 'Pagination':{'EntriesPerPage': 50, 'PageNumber': page},\ 'CategoryID': cat_id,'UserID': seller_id, \ earliest_s: earliest, latest_s: latest}) if api.error(): print api.error() raise Exception(api.error()) if api.response_content(): print "Call Success: %s in length" % len(api.response_content()) print "Response code: %s" % api.response_code() print "Response DOM: %s" % api.response_dom() num_pages = int( api.response_dict().PaginationResult.TotalNumberOfPages) while 1: if self.opts.debug: debug_results = parseString( self.removeNonAscii(api.response_content())) print debug_results.toprettyxml() if api.error(): print api.error() raise Exception(api.error()) elif api.response_dict().ItemArray != None: for item in api.response_dict().ItemArray.Item: id = item.ItemID cat = item.PrimaryCategory.CategoryID list_date, time = item.ListingDetails.StartTime.split('T') quantity = item.Quantity sold = item.SellingStatus.QuantitySold cprice = item.SellingStatus.ConvertedCurrentPrice.value try: item.ShippingDetails.ShippingServiceOptions.ShippingServiceCost.value except: sprice = 'NA' else: sprice = item.ShippingDetails.ShippingServiceOptions.ShippingServiceCost.value title = item.Title SKU = item.SKU hits = item.HitCount print "ItemID> %(item)s >Category> %(cat)s >SKU> %(SKU)s >Title> %(title)s >Quantity> %(quantity)s >Price> %(price)s >ShipCost> %(ship)s >Sold> %(sold)s >Listed> %(list_date)s >PageHits> %(hits)s" % \ {'item': id, 'cat' : cat, 'SKU' : SKU, 'title': title, 'quantity' : quantity, 'price': cprice, 'ship': sprice, 'sold': sold, 'list_date': list_date, 'hits': hits } #determine if we need another pass page += 1 sys.stdout.flush() if page <= num_pages: api.execute('GetSellerList', {'DetailLevel': 'ItemReturnDescription', \ 'Pagination':{'EntriesPerPage': 50, 'PageNumber': page},\ 'CategoryID': cat_id,'UserID': seller_id, \ earliest_s: earliest, latest_s: latest, \ 'OutputSelector': 'ItemArray.Item.ItemID,ItemArray.Item.PrimaryCategory.CategoryID,\ ItemArray.Item.ListingDetails.StartTime,ItemArray.Item.Quantity,ItemArray.Item.SellingStatus.QuantitySold,\ ItemArray.Item.SellingStatus.ConvertedCurrentPrice,ItemArray.Item.ShippingDetails.ShippingServiceOptions.ShippingServiceCost,\ ItemArray.Item.Title,ItemArray.Item.SKU,ItemArray.Item.HitCount' }) else: break
import ebaysdk from ebaysdk.http import Connection as HTTP from ebaysdk.exception import ConnectionError def init_options(): usage = "usage: %prog [options]" parser = OptionParser(usage=usage) parser.add_option("-d", "--debug", action="store_true", dest="debug", default=False, help="Enabled debugging [default: %default]") (opts, args) = parser.parse_args() return opts, args def run(opts): try: api = HTTP(debug=opts.debug, method='GET') api.execute('http://feeds.wired.com/wired/index') dump(api) except ConnectionError as e: print(e) if __name__ == "__main__": print("HTTP samples for SDK version %s" % ebaysdk.get_version()) (opts, args) = init_options() run(opts)
certid=opts.certid, devid=opts.devid) api.execute('getSellerProfiles') dump(api) except ConnectionError as e: print(e) print(e.response.dict()) def getConsolidationJobStatus(opts): try: api = Policies(debug=opts.debug, config_file=opts.yaml, appid=opts.appid, certid=opts.certid, devid=opts.devid) api.execute('getConsolidationJobStatus') dump(api) except ConnectionError as e: print(e) print(e.response.dict()) if __name__ == "__main__": (opts, args) = init_options() print("Business Policies API Samples for version %s" % ebaysdk.get_version()) getSellerProfiles(opts) getConsolidationJobStatus(opts)
print "Response code: %s" % api.response_code() print "Response DOM: %s" % api.response_dom() dictstr = "%s" % api.response_dict() print "Response dictionary: %s..." % dictstr[:250] def run2(opts): api = finding(debug=opts.debug, appid=opts.appid, config_file=opts.yaml) api.execute('findItemsByProduct', '<productId type="ReferenceID">53039031</productId>') if api.error(): raise Exception(api.error()) if api.response_content(): print "Call Success: %s in length" % len(api.response_content()) print "Response code: %s" % api.response_code() print "Response DOM: %s" % api.response_dom() dictstr = "%s" % api.response_dict() print "Response dictionary: %s..." % dictstr[:50] if __name__ == "__main__": print "Finding samples for SDK version %s" % ebaysdk.get_version() (opts, args) = init_options() run(opts) run2(opts)
except ConnectionError as e: print(e) print(e.response.dict()) ''' api = trading(domain='api.sandbox.ebay.com') api.execute('GetCategories', { 'DetailLevel': 'ReturnAll', 'CategorySiteID': 101, 'LevelLimit': 4, }) ''' if __name__ == "__main__": (opts, args) = init_options() print("Trading API Samples for version %s" % ebaysdk.get_version()) run(opts) feedback(opts) verifyAddItem(opts) getTokenStatus(opts) verifyAddItemErrorCodes(opts) uploadPicture(opts) uploadPictureFromFilesystem(opts, "c:/temp/samplefile.jpg") memberMessages(opts) categories(opts) getUser(opts) getOrders(opts)
def getItemTrans(self, item_id = None): print "retrieving results for item", print item_id print "Using ebay trading SDK version %s" % ebaysdk.get_version() print "====================" # build and execute ebay API call GetItemTransactions api = trading(debug=self.opts.debug, config_file=self.opts.yaml, appid=self.opts.appid, certid=self.opts.certid, devid=self.opts.devid) token = api.api_config.get('token') api.execute('GetItemTransactions', {'ItemID': item_id, 'NumberOfDays': 30}) if api.error(): print api.error() raise Exception(api.error()) if api.response_content(): print "Call Success: %s in length" % len(api.response_content()) print "Response code: %s" % api.response_code() print "Response DOM: %s" % api.response_dom() seller = api.response_dict().Item.Seller.UserID title = self.removeNonAscii(api.response_dict().Item.Title) sold = api.response_dict().Item.SellingStatus.QuantitySold if self.opts.debug: debug_results = parseString(self.removeNonAscii(api.response_content())) with open(item_id + "_full_results.xml", "w") as f: f.write( debug_results.toprettyxml() ) print "Listing" + title print "Seller: " + seller print "Quanitiy Sold: " + sold print "===========================================================================" print "========================= Sales History (30 days)==========================" print "===========================================================================" # output all transactions if api.response_dict().TransactionArray != None: if type(api.response_dict().TransactionArray.Transaction) is list: for trans in api.response_dict().TransactionArray.Transaction: date = trans.CreatedDate user = trans.Buyer.UserID paid = trans.ConvertedTransactionPrice.value print "Date: %(date)s \t Price: %(price)s \t User: %(user)s " % \ {'date': date, 'price' : paid, 'user' : user} else: # if only one transaction, we have to deal with a list instead of dict trans = api.response_dict().TransactionArray.Transaction date = trans.CreatedDate user = trans.Buyer.UserID paid = trans.ConvertedTransactionPrice.value shipping = trans.ShippingDetails.ShippingServiceOptions.ShippingService print "Date: %(date)s \t Price: %(price)s \t User: %(user)s \t Shipping: %(ship)s" % \ {'date': date, 'price' : paid, 'user' : user, 'ship' : shipping}
callData = { 'categoryId': [str(category_id)], 'outputSelector': 'CategoryHistogram' } response = api.execute('findItemsByCategory', callData).dict() return response if __name__ == "__main__": (opts, args) = init_options() # Get the service resource. print("Trading API Samples for version %s" % ebaysdk.get_version()) result_list = [] url_set = set() category_dict = {} error_log = [] url = "http://pages.ebay.com/sellerinformation/news/categorychanges.html" response = requests.get(url) soup = BeautifulSoup(response.text) div_left = soup.findAll("div", {"class": "listleft"}) li = div_left[1].findAll("li") for tag in li: a = tag.find("a") url_set.add(a['href'])
def getItemTrans(self, item_id=None): print "retrieving results for item", print item_id print "Using ebay trading SDK version %s" % ebaysdk.get_version() print "====================" # build and execute ebay API call GetItemTransactions api = trading(debug=self.opts.debug, config_file=self.opts.yaml, appid=self.opts.appid, certid=self.opts.certid, devid=self.opts.devid) token = api.api_config.get('token') api.execute('GetItemTransactions', { 'ItemID': item_id, 'NumberOfDays': 30 }) if api.error(): print api.error() raise Exception(api.error()) if api.response_content(): print "Call Success: %s in length" % len(api.response_content()) print "Response code: %s" % api.response_code() print "Response DOM: %s" % api.response_dom() seller = api.response_dict().Item.Seller.UserID title = self.removeNonAscii(api.response_dict().Item.Title) sold = api.response_dict().Item.SellingStatus.QuantitySold if self.opts.debug: debug_results = parseString( self.removeNonAscii(api.response_content())) with open(item_id + "_full_results.xml", "w") as f: f.write(debug_results.toprettyxml()) print "Listing" + title print "Seller: " + seller print "Quanitiy Sold: " + sold print "===========================================================================" print "========================= Sales History (30 days)==========================" print "===========================================================================" # output all transactions if api.response_dict().TransactionArray != None: if type(api.response_dict().TransactionArray.Transaction) is list: for trans in api.response_dict().TransactionArray.Transaction: date = trans.CreatedDate user = trans.Buyer.UserID paid = trans.ConvertedTransactionPrice.value print "Date: %(date)s \t Price: %(price)s \t User: %(user)s " % \ {'date': date, 'price' : paid, 'user' : user} else: # if only one transaction, we have to deal with a list instead of dict trans = api.response_dict().TransactionArray.Transaction date = trans.CreatedDate user = trans.Buyer.UserID paid = trans.ConvertedTransactionPrice.value shipping = trans.ShippingDetails.ShippingServiceOptions.ShippingService print "Date: %(date)s \t Price: %(price)s \t User: %(user)s \t Shipping: %(ship)s" % \ {'date': date, 'price' : paid, 'user' : user, 'ship' : shipping}
shop = Shopping(debug=opts.debug, appid=opts.appid, config_file=opts.yaml, warnings=False) prim_resp = shop.execute('GetMultipleItems', {'IncludeSelector': 'ItemSpecifics', 'ItemID': item_ids[0:20]}) for j in range(20, len(item_ids), 20): sub_resp = shop.execute('GetMultipleItems', {'IncludeSelector': 'ItemSpecifics', 'ItemID': item_ids[j:j+20]}) prim_resp.dom().extend(sub_resp.dom().xpath('//Item')) xml_file = open(os.path.join(directory, str(page)), 'w+') stylesheet_tag = '<?xml-stylesheet type="text/xsl" href="/ebay-data/xslItemSpecifics.xsl"?>\n' xml_file.write(stylesheet_tag) xml_file.write(lxml.etree.tostring(prim_resp.dom(), pretty_print=True)) xml_file.close() except ConnectionError as e: print(e) print(e.response.dict()) if __name__ == "__main__": print("FindItem samples for SDK version %s" % ebaysdk.get_version()) (opts, args) = init_options() run(opts)
def getSellerItems(self, seller_id = None, cat_id = None, days = None): print "retrieving items for seller/category id: ", print seller_id + " / ", print cat_id print "Using ebay trading SDK version %s" % ebaysdk.get_version() print "====================" if days > 0: earliest = datetime.datetime.now() latest = earliest + (datetime.timedelta(days)) earliest_s = 'EndTimeFrom' latest_s = 'EndTimeTo' else: latest = datetime.datetime.now() earliest = latest + (datetime.timedelta(days)) earliest_s = 'StartTimeFrom' latest_s = 'StartTimeTo' print earliest print latest # build and execute ebay API call GetItemTransaction api = trading(debug=self.opts.debug, config_file=self.opts.yaml, appid=self.opts.appid, certid=self.opts.certid, devid=self.opts.devid) token = api.api_config.get('token') page = 1 api.execute('GetSellerList', {'DetailLevel': 'ItemReturnDescription', \ 'Pagination':{'EntriesPerPage': 50, 'PageNumber': page},\ 'CategoryID': cat_id,'UserID': seller_id, \ earliest_s: earliest, latest_s: latest}) if api.error(): print api.error() raise Exception(api.error()) if api.response_content(): print "Call Success: %s in length" % len(api.response_content()) print "Response code: %s" % api.response_code() print "Response DOM: %s" % api.response_dom() num_pages = int(api.response_dict().PaginationResult.TotalNumberOfPages) while 1: if self.opts.debug: debug_results = parseString(self.removeNonAscii(api.response_content())) print debug_results.toprettyxml() if api.error(): print api.error() raise Exception(api.error()) elif api.response_dict().ItemArray != None: for item in api.response_dict().ItemArray.Item: id = item.ItemID cat = item.PrimaryCategory.CategoryID list_date, time = item.ListingDetails.StartTime.split('T') quantity = item.Quantity sold = item.SellingStatus.QuantitySold cprice = item.SellingStatus.ConvertedCurrentPrice.value try: item.ShippingDetails.ShippingServiceOptions.ShippingServiceCost.value except: sprice = 'NA' else: sprice = item.ShippingDetails.ShippingServiceOptions.ShippingServiceCost.value title = item.Title SKU = item.SKU hits = item.HitCount print "ItemID> %(item)s >Category> %(cat)s >SKU> %(SKU)s >Title> %(title)s >Quantity> %(quantity)s >Price> %(price)s >ShipCost> %(ship)s >Sold> %(sold)s >Listed> %(list_date)s >PageHits> %(hits)s" % \ {'item': id, 'cat' : cat, 'SKU' : SKU, 'title': title, 'quantity' : quantity, 'price': cprice, 'ship': sprice, 'sold': sold, 'list_date': list_date, 'hits': hits } #determine if we need another pass page+=1 sys.stdout.flush() if page <= num_pages: api.execute('GetSellerList', {'DetailLevel': 'ItemReturnDescription', \ 'Pagination':{'EntriesPerPage': 50, 'PageNumber': page},\ 'CategoryID': cat_id,'UserID': seller_id, \ earliest_s: earliest, latest_s: latest, \ 'OutputSelector': 'ItemArray.Item.ItemID,ItemArray.Item.PrimaryCategory.CategoryID,\ ItemArray.Item.ListingDetails.StartTime,ItemArray.Item.Quantity,ItemArray.Item.SellingStatus.QuantitySold,\ ItemArray.Item.SellingStatus.ConvertedCurrentPrice,ItemArray.Item.ShippingDetails.ShippingServiceOptions.ShippingServiceCost,\ ItemArray.Item.Title,ItemArray.Item.SKU,ItemArray.Item.HitCount'}) else:break