我正在使用Django和Amazon API来接收图书定价。我需要二手书最低价格。我一直在显示新的最低价格。下面是我的开发人员使用的代码。她说没有办法获得最低价格。我尝试了各种不同的商品/ OfferSummary等变体。仍然没有改变。我也尝试添加响应元素,但没有变化...从我读到的亚马逊总是首先返回最低新价格,然后是低价使用价格。
我对编码不是很好,但看起来像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 = []
答案 0 :(得分:1)
目前代码只是找到它可以的第一笔金额。这应该有效:
desc_soup = BeautifulSoup(price_response)
book_price = desc_soup.lowestusedprice.amount.get_text()
鉴于API响应是XML,您确实不应该使用html.parser
。你应该这样做:
desc_soup = BeautifulSoup(price_response, 'xml')
book_price = desc_soup.LowestUsedPrice.Amount.get_text()
(注意树对象的大写更改。您还需要安装lxml
才能使其工作。)