尝试根据 xpath 从亚马逊获取价格,但 if else 语句无法正常工作

Ttrying to capture price from amazon based on xpath but if else statement is not working correctly

我正在尝试根据 xpath 从亚马逊获取价格,但如果 else 语句无法正常工作 - 有人可以帮助解决这个问题吗?如果第一个 xpath 没有找到元素,那么它将通过第二个 xpath

找到
from bs4 import BeautifulSoup
from lxml import etree
import requests

HEADERS = ({'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:94.0) Gecko/20100101 Firefox/94.0','Accept-Language': 'en-US, en;q=0.5'})
    
URL= "https://www.amazon.in/dp/B099Z83VRC"
webpage = requests.get(URL, headers=HEADERS)
soup = BeautifulSoup(webpage.content, "lxml")
dom = etree.HTML(str(soup))

Price = dom.xpath('//div[@id="apex_desktop"]/div/div/span/span/text()')[0]
if Price == AttributeError:
    Price = dom.xpath('//div[@id="apex_desktop"]/div/div/table//tr[2]/td[2]/span/span[1]/text()')[0]
else:
    Price = "No data"

Price

如果第一个抛出错误,你可以使用 try..except 块 xpath 它会去 except 块并尝试第二个。

try:
  Price = dom.xpath('//div[@id="apex_desktop"]/div/div/span/span/text()')[0]
except:
  Price = dom.xpath('//div[@id="apex_desktop"]/div/div/table//tr[2]/td[2]/span/span[1]/text()')[0]
  print(Price)