通过ebay API Python增加项目搜索结果的数量

时间:2019-06-09 18:49:58

标签: python ebay-api

我有一个基本脚本来连接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 :(得分:0)

Ebay可能是paginating,这意味着他们将每个页面的条目划分为多个响应。

他们对查询的响应应具有当前页码和总页数,您需要请求以下所有您感兴趣的页面。

答案 1 :(得分:0)

这已记录在page for findItemsByKeywords上。

在您的API请求参数中添加一个paginationInput.pageNumber参数,例如

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)