我得到了一个基本的脚本来连接易趣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')发布于 2019-06-10 02:54:12
易趣可能是paginating,这意味着他们的响应是按每个页面的条目数量划分的。
他们对查询的响应应该有当前页码和总页数,您将需要请求以下所有您感兴趣的页面。
发布于 2019-06-10 02:59:07
这在page for 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)https://stackoverflow.com/questions/56517453
复制相似问题