ниже код будет делать поиск по ключевым словам для «ноутбуков» по всей территории Великобритании eBay и ограничить поиск двух категорий Apple, ноутбуки (111422) и ПК Ноутбуки & Ноутбуки (177). Кроме того, результаты фильтруются, чтобы показывать только первые 25 предметов, стоимость которых составляет от 200 до 400 фунтов стерлингов. Результаты также сортируются по цене от высокой к низкой.
В этом примере нужно иметь в виду несколько вещей.
- Предполагается, что вы уже установили ebaysdk-python.
- В соответствии с eBay docs поле categoryId является строкой и может быть указана более чем одна категория. Поэтому массив используется для хранения интересующих нас идентификаторов категорий.
- Наш запрос требует поиска предметов на веб-сайте Великобритании eBay. Поэтому мы передаем EBAY-GB в качестве параметра siteid.
- Категория ids различна на каждом сайте eBay.К примеру, в категории Ноутбуки для ПК & Нетбуков (177) в Бельгии нет. (Который между прочим это сайт, который используется в ebaysdk-питона finding.py пример.)
Этот пример также доступен как Gist
import ebaysdk
from ebaysdk import finding
api = finding(siteid='EBAY-GB', appid='<REPLACE WITH YOUR OWN APPID>')
api.execute('findItemsAdvanced', {
'keywords': 'laptop',
'categoryId' : ['177', '111422'],
'itemFilter': [
{'name': 'Condition', 'value': 'Used'},
{'name': 'MinPrice', 'value': '200', 'paramName': 'Currency', 'paramValue': 'GBP'},
{'name': 'MaxPrice', 'value': '400', 'paramName': 'Currency', 'paramValue': 'GBP'}
],
'paginationInput': {
'entriesPerPage': '25',
'pageNumber': '1'
},
'sortOrder': 'CurrentPriceHighest'
})
dictstr = api.response_dict()
for item in dictstr['searchResult']['item']:
print "ItemID: %s" % item['itemId'].value
print "Title: %s" % item['title'].value
print "CategoryID: %s" % item['primaryCategory']['categoryId'].value
Я надеюсь, что следующее будет объяснить, почему выполнение поиска по на сайте в Бельгии появляются предметы, которые содержат категорию 177, хотя это не относится к Бельгии, но действует для Великобритании.
В основном eBay позволяет продавцам с одного сайта появляться в результатах поиска другого сайта, если они отвечают требуемым критериям, например, предлагают международную доставку. Это позволяет продавцам продавать в другие страны без необходимости фактически перечислять на этих сайтах.
Из примера XML, который предоставил elelias, я вижу, что поиск по ключевым словам для «ноутбука» был сделан на сайте в Бельгии с отфильтрованными результатами, чтобы возвращались только предметы, находящиеся в Великобритании.
<itemFilter>
<name>LocatedIn</name>
<value>GB</value>
</itemFilter>
Поскольку поиск был ограничен теми, которые находятся в Великобритании, вы не увидите никаких результатов в Бельгии. Поскольку элементы, перечисленные на веб-сайте Великобритании, будут содержать информацию, относящуюся к Великобритании. Например, идентификатор категории 177. eBay не преобразует информацию, чтобы сделать ее релевантной для сайта, который вы ищете.
Важно помнить, что то, что вы пытаетесь сделать с помощью API поиска, также может быть повторено с использованием фактического предварительного поиска на eBay. Например, можно воссоздать проблему, выполнив поиск по ключевым словам для используемых элементов на сайте в Бельгии.
Этот url является эквивалентом вашего кода, который выполнял поиск, не указав категорию 177. Как вы можете видеть из результатов, она возвращает элементы, которые указаны на веб-сайте Великобритании, но которые появляются на сайте в Бельгии. Вы нажимаете на некоторые элементы, для example вы даже можете увидеть, что на нем отображаются ноутбуки для ПК категории & Нетбуки (177), хотя этого не существует на сайте в Бельгии. Это соответствует результатам вашего кода, где он возвращал 177, но не позволял вам указывать то же значение в запросе, когда вы искали сайт в Бельгии.
Надеюсь, это поможет.
Попробуйте другой. Давайте работать. Возможно, ваша конечная точка имеет разные допустимые категории. –
Я не знаю, поможет ли это, но категория 51148 не существует на сайте eBay в Великобритании. –
Я пробую без требования categoryId, а затем беру один из них на выходе, поэтому он должен существовать! В частности, я пытаюсь использовать 177, что соответствует ноутбукам и ноутбукам. – elelias