【发布时间】:2016-05-17 22:31:27
【问题描述】:
我正在使用带有 Bottlenose 的 API 并使用 BeautifulSoup 解析 xml 响应来查找来自亚马逊的产品价格。 我有一个代码迭代的预定义产品列表。 这是我的代码:
import bottlenose as BN
import lxml
from bs4 import BeautifulSoup
i = 0
amazon = BN.Amazon('myid','mysecretkey','myassoctag',Region='UK',MaxQPS=0.9)
list = open('list.txt', 'r')
print "Number", "New Price:","Used Price:"
for line in list:
i = i + 1
listclean = line.strip()
response = amazon.ItemLookup(ItemId=listclean, ResponseGroup="Large")
soup = BeautifulSoup(response, "xml")
usedprice=soup.LowestUsedPrice.Amount.string
newprice=soup.LowestNewPrice.Amount.string
print i , newprice, usedprice
这很好用,并且会遍历我的亚马逊产品列表,直到找到对该组标签没有任何价值的产品,like no new/used price.
Python 会在什么时候抛出这个响应:
AttributeError: 'NoneType' object has no attribute 'Amount'
这是有道理的,因为 BS 没有找到我搜索的标签/字符串。从我想要实现的目标来看,没有价值是完全可以的,但是代码此时崩溃并且不会继续。
我试过了:
if soup.LowestNewPrice.Amount != None:
newprice=soup.LowestNewPrice.Amount.string
else:
continue
也试过了:
newprice=0
if soup.LowestNewPrice.Amount != 0:
newprice=soup.LowestNewPrice.Amount.string
else:
continue
收到 nonetype 值返回后,我不知道如何继续。不确定问题根本在于语言还是我正在使用的库。
【问题讨论】:
标签: python xml beautifulsoup