class SkuGen(object): def __init__(self): self.tableManager = Tables() self.outdb = databaseManager('sku','skudatabase') self.indb = databaseManager('matching','la1018') self.pool = PoolManager(REQUEST_AMOUNT) self.request = self.pool.connection_from_url(URL) def api_request(self, key): api = '?key='+API_KEY url = URL + key + api data = self.request.urlopen('GET', url) value = data.data data.close() print value try: out = json.loads(value) return out except Exception: pass def googleRequest(self, key): callback = 'response_dict' context = 'bar' query = 'q='+key callback = '&callback=' + callback cont = '&context='+context url = GOOGLE + query response = urlopen(url) html = response.read() out = json.loads(html) out = out['responseData'] return out['results'], getTop(out['results']) def getTop(self, arr): top = arr[0] title = top['title'] url = top['url'] return title, url def api_process(self, api_dict): api_dict = api_dict['basic'] if 'name' in api_dict: name = api_dict['name'] return name def siteObject(self, item): site = dict() site['url'] = item['url'] site['price'] = item['price'] site['name'] = item['name'] site['description'] = item['description'] site['image'] = item['image'] site['price_str'] = item['price_str'] site['volume'] = item['volume'] return site def newItem(self, sku, name, item): new_item = dict() new_item['sku'] = sku new_item['name'] = name new_item['brand'] = item['brand'] new_item['category'] =item['category'] new_item['sites'] = [] return new_item def querySku(self, integer, site): collection = self.indb.getCollection() count = 0 for item in collection.find({'site': site}).limit(integer): sku = item['sku'] _sku = str(utils.extractSku(sku)) print 'querying sku : %s' % sku out = self.api_request(_sku) try: name = self.api_process(out) print name count = count + 1 print count if name: new_item = self.newItem(sku,name,item) site = self.siteObject(item) site['sku'] = sku new_item['sites'].append(site) self.outdb.updateViaSku(new_item) except Exception: pass