当我使用python查找sdk在易趣上搜索物品时,我通常会得到包含两个或多个我没有搜索的物品的物品的结果。一个例子:
request1 = {
'keywords': "Iphone x 64gb", # I am searching for Listings of an iPhone x 64gb
'itemFilter': [
{'name': 'Condition', 'value': 'Used'},
{'name': 'currency', 'value': 'CAD'},
{'name': 'minPrice', 'value': 100.0}
],
'paginationInput': {
'entriesPerPage': 100,
'pageNumber': 13
},
'sortOrder': 'BestMatch'
}
api = find_connect(config_file='ebay.yml', siteid="EBAY-ENCA")
resp = api.execute('FindPopularItems', request1).dict() # Change from XML to dictionary
parse_response(reps) # send the dictionary of listings to be parsed
当我看到从API请求返回的一些列表时,我可以得到类似于这个的东西
itemId: 303279232871
title: Apple iPhone X Smartphone 64GB 256GB AT&T Sprint T-Mobile Verizon or Unlocked
globalId: EBAY-US
subtitle: 30-Day Warranty - Free Charger & Cable - Easy Returns!
primaryCategory: {'categoryId': '9355', 'categoryName': 'Cell Phones & Smartphones'}
galleryURL: https://thumbs4.ebaystatic.com/pict/303279232871404000000001_2.jpg
viewItemURL: https://www.ebay.ca/itm/Apple-iPhone-X-Smartphone-64GB-256GB-AT-T-Sprint-T-Mobile-Verizon-Unlocked-/303279232871?var=602277420740
paymentMethod: PayPal
autoPay: true
postalCode: 660**
location: USA
country: US
shippingInfo: {'shippingServiceCost': {'_currencyId': 'CAD', 'value': '23.83'}, 'shippingType': 'Flat', 'shipToLocations': 'Worldwide'}
sellingStatus: {'currentPrice': {'_currencyId': 'USD', 'value': '309.0'}, 'convertedCurrentPrice': {'_currencyId': 'CAD', 'value': '436.46'}, 'sellingState': 'Active', 'timeLeft': 'P21DT20H28M35S'}
listingInfo: {'bestOfferEnabled': 'false', 'buyItNowAvailable': 'false', 'startTime': '2019-09-09T14:07:31.000Z', 'endTime': '2020-05-09T14:07:31.000Z', 'listingType': 'FixedPrice', 'gift': 'false', 'watchCount': '18'}
galleryPlusPictureURL: https://galleryplus.ebayimg.com/ws/web/303279232871_1_3459_1_00000001.jpg
condition: {'conditionId': '2500', 'conditionDisplayName': 'Seller refurbished'}
isMultiVariationListing: true # **This means that it is a multi variation listing**
topRatedListing: false
这是一个列表的Iphone x 64gb和256gb有不同的价格。甚至可能有两种以上的商品价格不同(客户可能想要,但它是旧的或新的,等等(。然而,我并不只是想把它从我的数据集中丢弃,因为eBay的API最多只返回10000个登录物品,每天只允许5000个呼叫(数据仍然相关(。如何从列表中筛选每个单独的项目?
我能想到的一件事应该会有所帮助,那就是如果您按方面而不是使用关键字进行查询。下面的示例查找具有"64 GB"存储空间的"iphonex"结果。特性筛选必须在适当的类别中进行。这也假设卖家已经用结构化数据创建了列表。
api_request = {
'keywords': "Iphone x",
'itemFilter': [
{'name': 'Condition', 'value': 'Used'},
{'name': 'currency', 'value': 'CAD'},
{'name': 'minPrice', 'value': 100.0}
],
'aspectFilter': [
{
'aspectName': 'Storage Capacity',
'aspectValueName': '16 GB',
}
],
'categoryId': 9355,
'outputSelector': [
'AspectHistogram',
],
'paginationInput': {
'entriesPerPage': 100,
'pageNumber': 1
},
'sortOrder': 'BestMatch'
}