这里我们有一小段html页面:
on_sale
当类price_sale = product_item.find('span',class_='food_price on_sale')
price_price = product_item.find('span',class_='food_price').text
print(price_sale) #when there is no 'food_price on_sale' display None
if price_sale=='None':
price_sale = -1
else:
price_sale = product_item.find('span',class_='price sale').text
print(price_sale)
可用时,我想设置变量price_sale = span中的值。如果不是,我想将变量值设置为-1。
我正在使用的这个代码:
Traceback (most recent call last):
File "/home/ila/vhosts/crawler/bucky.py", line 144, in <module>
price_sale = product_item.find('span',class_='food_price on_sale').text
AttributeError: 'NoneType' object has no attribute 'text'
我收到了以下错误:
class="food_price on_sale"
似乎没有if price_sale=='None':
时,它不会进入None
。我猜是{{1}}似乎不是一个字符串。
有人知道如何比较这个吗?
答案 0 :(得分:1)
这应该有所帮助。
<强>演示:强>
from bs4 import BeautifulSoup
s = """<p class="food_price">
<span class="food_price on_sale">$45</span>
<span class="food_price">$65</span>
</p>
"""
soup = BeautifulSoup(s, "html.parser")
price_sale = soup.find('span',class_='food_price on_sale')
if price_sale:
price_sale = price_sale.text
else:
price_sale = -1
print(price_sale)
<强>输出:强>
$45