it’s strange that a company like eBay doesn’t make it easy for sellers to get the resources they need. have you tried getting a complete list of all eBay categories? maybe with the eBay category tree? – you will find that there’s not a convenient download location, albeit there should be!
the “trick” so I’ve learned is to get it yourself.
here is a very short python script that will get your categories:
#! /usr/bin/env python
import tools as t
import xmltodict as xml
import requests
url = 'http://open.api.ebay.com/Shopping?callname=GetCategoryInfo&appid={}&siteid={}&CategoryID={}&version=729&IncludeSelector=ChildCategories'
app_id = 'XXXX' #get your own eBay app id
site_id = '3' # 3 is UK
to_get = [-1] # start at the top
done = []
categories = {}
if __name__ == "__main__":
while len(to_get) > 0:
cid = to_get.pop()
re = requests.get(url.format(app_id, site_id, cid))
root = xml.parse(re.text)
cats = root['GetCategoryInfoResponse']['CategoryArray']['Category']
for cat in cats:
if cat['CategoryID'] not in categories:
print(cat.get('CategoryName', 0))
c = {'category_id': cat.get('CategoryID', 0),
'category_level': cat.get('CategoryLevel', 0),
'category_name': cat.get('CategoryName', 0),
'category_parent_id': cat.get('CategoryParentID', 0),
'leaf_category': cat.get('LeafCategory', 0),
'category_name_path': cat.get('CategoryNamePath', 0)}
categories[cat['CategoryID']] = c
done.append(cid)
if cat['CategoryID'] not in done and cat['LeafCategory'] == 'false' :
to_get.append(cat['CategoryID'])
with open('eBay_categories.tsv', 'w', encoding="utf-8") as of:
of.write("category_idtcategory_leveltcategory_nametcategory_parent_idtleaf_categorytCategoryNamePathn")
for k,v in categories.items():
of.write(str(v['category_id']) + "t" + str(v['category_level']) + "t" + str(v['category_name']) + "t" + str(v['category_parent_id']) + "t" + str(v['leaf_category']) + "t" + str(v['category_name_path']) + "n")
the above will then create a tab-delimited text file named ‘eBay_categories.tsv’.
please note you will need both the “requests” and the “xmltodict” modules. they can be easily obtained using pypi. this code is python 3