-
-
Save davidtsadler/6993747 to your computer and use it in GitHub Desktop.
import ebaysdk | |
from ebaysdk import finding | |
api = finding(siteid='EBAY-GB', appid='<REPLACE WITH YOUR OWN APPID>') | |
api.execute('findItemsAdvanced', { | |
'keywords': 'laptop', | |
'categoryId' : ['177', '111422'], | |
'itemFilter': [ | |
{'name': 'Condition', 'value': 'Used'}, | |
{'name': 'MinPrice', 'value': '200', 'paramName': 'Currency', 'paramValue': 'GBP'}, | |
{'name': 'MaxPrice', 'value': '400', 'paramName': 'Currency', 'paramValue': 'GBP'} | |
], | |
'paginationInput': { | |
'entriesPerPage': '25', | |
'pageNumber': '1' | |
}, | |
'sortOrder': 'CurrentPriceHighest' | |
}) | |
dictstr = api.response_dict() | |
for item in dictstr['searchResult']['item']: | |
print "ItemID: %s" % item['itemId'].value | |
print "Title: %s" % item['title'].value | |
print "CategoryID: %s" % item['primaryCategory']['categoryId'].value |
Have you tried using api.response.dict() instead as the comment above states? According to the comment api.response_dict() is deprecated.
Here is a more updated one that works for me:
from ebaysdk.finding import Connection
api = Connection(siteid='EBAY-GB', appid='<REPLACE WITH YOUR OWN APPID>', config_file=None)
api.execute('findItemsAdvanced', {
'keywords': 'laptop',
'categoryId': ['177', '111422'],
'itemFilter': [
{'name': 'Condition', 'value': 'Used'},
{'name': 'MinPrice', 'value': '200', 'paramName': 'Currency', 'paramValue': 'GBP'},
{'name': 'MaxPrice', 'value': '400', 'paramName': 'Currency', 'paramValue': 'GBP'}
],
'paginationInput': {
'entriesPerPage': '25',
'pageNumber': '1'
},
'sortOrder': 'CurrentPriceHighest'
})
dictstr = api.response.dict()
for item in dictstr['searchResult']['item']:
print('ItemID: {}'.format(item['itemId']))
print('Title: {}'.format(item['title']))
print('CategoryID: {}'.format(item['primaryCategory']['categoryId']))
@Tamerz - I also get this error with yours too.
TypeError: 'ResponseDataObject' object has no attribute '__getitem__'
Thanks for the example! On the 'itemFilter', can we have more than one conditions? e.g., Used and Very Good
HI guys, thanks for the script, I get some error.
Traceback (most recent call last):
File "finding.py", line 2, in
from ebaysdk.finding import Connection as finding
ModuleNotFoundError: No module named 'ebaysdk'
I don't think anybody answered the pagination question. Any ideas?
I keep getting the following error, whenever i try to run any of the examples above. Any clues as to what might be the issue?
'findItemsAdvanced: Internal Server Error, Domain: Security, Severity: Error, errorId: 10001, Service call has exceeded the number of times the operation is allowed to be called'
Sounds like you are out of API calls
This was asked before but no reply and wonder if somebody can assist since documentation is not clear on this.
{'name': 'Condition', 'value': 'Used'},
how to add another value above. This is a more general question and not only related to the Condition filter. There are many filters that support multiple values and I wish there are examples how to do this in this SDK since it's pretty basic feature. All examples are showing a single value only.
I don't think anybody answered the pagination question. Any ideas?
Perhaps put the whole thing in the function and make the page a variable.
def find_item_advanced(page_num):
api = Connection( ...
....
'pageNumber': page_num
...
def main():
total_pages = 8 # Input
total_pages = min(total_pages, 100)
for p in range(1, total_pages + 1):
find_item_advanced(p)
if __name__ == '__main__':
main()
...
You can return up to the first 100 pages of the result set by issuing multiple requests and specifying, in sequence, the pages to return.
Min: 1. Max: 100. Default: 1.
Hi every one can any one please show me how to change ebay order status python api? Please
Hi every one can any one please show me how to change ebay order status python api? Please
I saw orders.py from ebaysdk-python. This might help in what your are trying to achieve.
https://github.com/timotheus/ebaysdk-python/blob/master/ebaysdk/poller/orders.py
Anyone know of a replacement for the dump module for python3?
#This file contains all the above fixes and is working for me as of 09-June-2020
import ebaysdk
from ebaysdk.finding import Connection as finding
api = finding(domain='svcs.sandbox.ebay.com', debug=True, appid='YOUR_APP_ID', config_file=None)
api.execute('findItemsAdvanced', {
'keywords': 'laptop',
'categoryId' : ['177', '111422'],
'itemFilter': [
{'name': 'Condition', 'value': 'Used'},
{'name': 'MinPrice', 'value': '200', 'paramName': 'Currency', 'paramValue': 'GBP'},
{'name': 'MaxPrice', 'value': '400', 'paramName': 'Currency', 'paramValue': 'GBP'}
],
'paginationInput': {
'entriesPerPage': '25',
'pageNumber': '1'
},
'sortOrder': 'CurrentPriceHighest'
})
dictstr = api.response.dict()
for item in dictstr['searchResult']['item']:
print("ItemID: %s" % item['itemId'])
print("Title: %s" % item['title'])
print("CategoryID: %s" % item['primaryCategory']['categoryId'])
How to filter out sellers you don't like?
This script seems to need several changes,
as per previous advice, but also i cannot iterate the object:
dictstr = api.response_dict()
whatever though, i can seem to print that thing and it has the results in it somewhere, thanks for the code 👍 example but why the hell do these sites keep changing the data presentation, is it just to keep devs in work?