Увеличьте количество результатов поиска предметов через eBay API Python - PullRequest
0 голосов
/ 09 июня 2019

У меня есть базовый скрипт для связи с ebay API и поиска по ключевым словам. Скрипт работает нормально, но, к сожалению, он ищет только первые 100 элементов, как увеличить количество результатов поиска?

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

Keywords = 'Ford'
api = finding(appid='APP ID', config_file=None)
api_request = { 'keywords': Keywords, 'outputSelector': 'SellerInfo' }

response = api.execute('findItemsByKeywords', api_request)
soup=BeautifulSoup(response.content, 'lxml')
totalentries = int(soup.find('totalentries').text)
items= soup.find_all('item')

Я наконец разобрался с этим. На самом деле paginationInput - это словарь, который немного меня задел. Также по некоторым причинам более полезно использовать findItemsAdvanced вместо findItemsByKeywords.

Keywords = product
    api = finding(appid='APP_ID', config_file=None)
    api_request = { 'keywords': product,'outputSelector': 'SellerInfo' ,  'categoryId': ['33034'],  'paginationInput':{'entriesPerPage':100, 'pageNumber':1} }


    response = api.execute('findItemsAdvanced', api_request)
    soup=BeautifulSoup(response.content, 'lxml')

Ответы [ 2 ]

0 голосов
/ 09 июня 2019

Это задокументировано на странице для findItemsByKeywords.

Добавьте параметр paginationInput.pageNumber к параметрам запроса API, возможно, что-то вроде

from ebaysdk.finding import Connection
from bs4 import BeautifulSoup

Keywords = "Ford"
api = Connection(appid="APP ID", config_file=None)

items = []

for page in range(1, 11):
    api_request = {
        "keywords": Keywords,
        "outputSelector": "SellerInfo",
        "paginationInput.pageNumber": page,
    }
    response = api.execute("findItemsByKeywords", api_request)
    soup = BeautifulSoup(response.content, "lxml")
    totalentries = int(soup.find("totalentries").text)
    items.extend(soup.find_all("item"))

print(items)
0 голосов
/ 09 июня 2019

Ebay, вероятно, разбивает на страницы , что означает, что они делят свой ответ по количеству записей для каждой страницы.

Их ответ на запрос должен содержать номер текущей страницы и общее количество страниц, вам нужно будет запросить все следующие интересующие вас страницы.

...