2016-06-05 1 views
0

Я использую Django с API Amazon для получения цен на книги. Мне НЕОБХОДИМО использовать самую дешевую книгу. Я продолжаю получать новые низкие цены. Ниже приведен код моего разработчика. Она сказала, что нет способа получить самую низкую цену. Я пробовал несколько разных вариантов предложений/OfferSummary и т. Д. Все еще не изменился. Я также попытался добавить элементы Response, но никаких изменений ... Из того, что я читал, Amazon всегда сначала возвращает самую низкую новую цену, а затем Lowested Used Price.Получение минимальной цены использования с API Amazon

Я не очень разбираюсь в кодировании, но, похоже, BeautifulSoup просто вытаскивает первую сумму, которая показана. Любые мысли о том, как я могу это достичь? отработавшие весь день с изменениями и получил не где получать б цены ....

price_response = amazon.ItemLookup(ItemId=isbn, IdType="ISBN", SearchIndex="Books", 
            MerchantID="All", ResponseGroup="Small,OfferSummary") 
try: 
    desc_soup = BeautifulSoup(price_response,"html.parser") 
    book_price = desc_soup.amount.get_text() 
    book_price =float(book_price)/100 
    book_price = decimal.Decimal(book_price) 
    price_range = [] 

ответ

1

В настоящее время код просто найти первую сумму, которую он может. Это должно работать:

desc_soup = BeautifulSoup(price_response) 
book_price = desc_soup.lowestusedprice.amount.get_text() 

Вы действительно не должны использовать html.parser либо при условии, что ответ API является XML. Вы должны сделать это вместо того, чтобы:

desc_soup = BeautifulSoup(price_response, 'xml') 
book_price = desc_soup.LowestUsedPrice.Amount.get_text() 

(Обратите внимание, что капитализация дерева объектов изменения Вы также должны lxml быть установлены для этой работы.).

+0

2 полных дня, пытаясь заставить это работать. И вы решили это с одним сообщением. Я очень ценю это! Спасибо. – ryanb4614