''' Retrieves eBay recommended Category Specifics for each category present in cat_list.txt file. Used to drop crappy user-submitted specifics and values from training datasets. ''' import ebaysdk import json import requests import concurrent.futures import config as cfg from ebaysdk.shopping import Connection as Shopping from ebaysdk.trading import Connection as Trading sapi = Shopping(config_file = 'ebay.yaml') tapi = Trading(config_file='ebay.yaml') def get_cat_specs(cat): response = tapi.execute('GetCategorySpecifics', {'CategoryID':cat}) cat_spacs =[name['Name'] for name in response.dict()['Recommendations']['NameRecommendation']] return cat_spacs with open('cat_list.txt') as f: cat_list = json.load(f) def threadd_cat_spacs(): cat_spacs = [] with concurrent.futures.ThreadPoolExecutor() as executor: for future in executor.map(get_cat_specs, cat_list): cat_spacs.extend(future) cat_spacs = list(set(cat_spacs)) return cat_spacs if __name__=='__main__': cat_spacs = threadd_cat_spacs() with open('cat_spacs.txt', 'w') as f: json.dump(cat_spacs, f)