Как использовать функцию GetSuggestedCategories для сайта, отличного от американского, в ebay api - PullRequest
0 голосов
/ 02 мая 2019

Мне нужно получить предлагаемые категории для моих товаров.Однако, когда я делаю запрос, я получаю ответ для американского сайта.Как получить это для Великобритании?

мой код:

from ebaysdk.trading import Connection

api = Connection(config_file="ebay.yaml", 
domain="api.ebay.com", debug=True)

response = api.execute('GetSuggestedCategories', {'Query': 'INTERNAZIONALE 
1999/2000 AWAY FOOTBALL SHIRT MAGLIA JERSEY NIKE'})

for items in reply.dict()['SuggestedCategoryArray']['SuggestedCategory']:
print(items)

Ответ:

 {'Category': {'CategoryID': '2887', 'CategoryName': 'Soccer-International 
 Clubs', 'CategoryParentID': ['64482', '24409'], 'CategoryParentName': 
 ['Sports Mem, Cards & Fan Shop', 'Fan Apparel & Souvenirs']}, 
 'PercentItemFound': '89'}

 {'Category': {'CategoryID': '2891', 'CategoryName': 'Soccer-National 
 Teams', 'CategoryParentID': ['64482', '24409'], 'CategoryParentName': 
 ['Sports Mem, Cards & Fan Shop', 'Fan Apparel & Souvenirs']}, 
 'PercentItemFound': '6'}

 {'Category': {'CategoryID': '123490', 'CategoryName': 'Men', 
 'CategoryParentID': ['888', '159049', '20862', '159178', '33485'], 
 'CategoryParentName': ['Sporting Goods', 'Team Sports', 'Soccer',                
 'Clothing, Shoes & Accessories', 'Clothing']}, 'PercentItemFound': 
 '3'}

1 Ответ

0 голосов
/ 05 мая 2019

Я где-то читал ( Таблица SiteID ), что вы должны установить заголовок с 'X-EBAY-API-SITEID', чтобы он мог вернуть соответствующие результаты. Код для Великобритании - 3, поэтому, скорее всего, решение вашей проблемы просто добавьте:

siteid: 3 

в файл ebay.yml, который вы используете. Если вы хотите больше манипулировать заголовками / посмотреть, что еще можно добавить в файл ebay.yml, вы можете обратиться к функции build_request_headers в модуле traing/__init__.py.

Надеюсь, что решит вашу проблему!

Когда я попробовал ваш код, я также заметил, что вы используете response для получения результата, но reply в цикле for, я думаю, опечатка. В любом случае, результат, который я получил, добавив siteid:

{'Category': {'CategoryID': '112976', 'CategoryName': 'Italian Clubs',
'CategoryParentID': ['64482', '53597', '112972'], 'CategoryParentName':
['Sports Memorabilia', 'Football Shirts', 'Overseas Clubs']}, 'PercentItemFound': '70'}
{'Category': {'CategoryID': '106485', 'CategoryName': 'English Clubs', 
'CategoryParentID': ['64482', '53597'], 'CategoryParentName': 
['Sports Memorabilia', 'Football Shirts']}, 'PercentItemFound': '12'}

{'Category': {'CategoryID': '112992', 'CategoryName': 'Scottish Clubs', 'CategoryParentID': ['64482', '53597'], 
'CategoryParentName': ['Sports Memorabilia', 'Football Shirts']}, 'PercentItemFound': '5'}
.
.
.

EDIT: Добавляем еще один способ манипулирования заголовками. Как указал @Fen, еще один способ изменить заголовок siteid - добавить его в класс соединения в скрипте, как он это сделал:

api = Connection(config_file="ebay.yaml", domain="api.ebay.com", siteid=3, debug=True)

...