EBAY Finding API Фильтрация даты - PullRequest
0 голосов
/ 04 февраля 2020

Я пытаюсь вернуть список выполненных предметов в данной категории, используя ebay API. Мой код, кажется, работает, однако результаты кажутся очень ограниченными (около 100). Я предполагал, что будет какое-то ограничение на то, как далеко назад API будет go, но даже через несколько дней должны появиться тысячи результатов для этой категории. Я что-то упустил в коде или это просто ограничение API eBay? Я удостоверился, что использую продукцию, а не песочницу.

Так что теперь я понял, что в моем запросе есть несколько страниц, вплоть до 100 элементов / 100 страниц максимум. Я сейчас сталкиваюсь с проблемами с фильтрацией даты. Я вижу фильтр справочных материалов на сайте, но я все еще не получаю ожидаемый результат. В обновленном запросе я пытаюсь получить только те элементы, которые были завершены вчера, но при запуске я получаю данные с сегодняшнего дня. Есть ли лучший способ ввода фильтров даты?

from ebaysdk.finding import Connection as finding
from bs4 import BeautifulSoup
import os
import csv

api = finding(appid=<my appid>,config_file=None)

response = api.execute(
             'findCompletedItems', {
                        'categoryId': '214',
                        'keywords' : 'prizm', 
                        'endTimeFrom' : '2020-02-03T00:00:00.000Z',
                        'endTimeTo' : '2020-02-04T00:00:00.000Z' ,
                        'paginationInput': {
                                'entriesPerPage': '100',
                                'pageNumber': '1'
                                            },
                        'sortOrder': 'EndTimeSoonest'
                                    }
                        )

soup = BeautifulSoup(response.content , 'lxml')

totalitems = int(soup.find('totalentries').text)
items = soup.find_all('item')

for item in response.reply.searchResult.item:
    print(item.itemId)
    print(item.listingInfo.endTime)

1 Ответ

0 голосов
/ 04 февраля 2020

Я наконец понял это. Мне нужно было добавить дополнительный код для фильтров элементов. Рабочий код приведен ниже.

из ebaysdk.finding import Соединение как при поиске из bs4 import BeautifulSoup import os import csv

api = finding(appid=<my appid>,config_file=None)

response = api.execute(
             'findCompletedItems', {
                        'categoryId': '214',
                        'keywords' : 'prizm',
                         'itemFilter': [
                                        {'name': 'EndTimeFrom', 'value': '2020-02-03T00:00:00.000Z'},
                                        {'name': 'EndTimeTo', 'value': '2020-02-04T00:00:00.000Z'}
                                        #{'name': 'MinPrice', 'value': '200', 'paramName': 'Currency', 'paramValue': 'GBP'},
                                        #{'name': 'MaxPrice', 'value': '400', 'paramName': 'Currency', 'paramValue': 'GBP'}
                                       ],
                        'paginationInput': {
                                'entriesPerPage': '100',
                                'pageNumber': '100'
                                            },
                        'sortOrder': 'EndTimeSoonest'
                                    }
                        )

soup = BeautifulSoup(response.content , 'lxml')

totalitems = int(soup.find('totalentries').text)
items = soup.find_all('item')

for item in response.reply.searchResult.item:
    print(item.itemId)
    print(item.listingInfo.endTime)
...